1
在給定XML元素的jQuery像這樣:JavaScript/jQuery:如何獲取XML元素中所有屬性的數組?
$('<foo oy="vey" foo="bar" here="is" another="attribute" />')
我可以使用jQuery的或純老JavaScript來獲取包含的XML元素的所有屬性名稱的數組?我期望這樣:
['oy','foo','here','another']
在給定XML元素的jQuery像這樣:JavaScript/jQuery:如何獲取XML元素中所有屬性的數組?
$('<foo oy="vey" foo="bar" here="is" another="attribute" />')
我可以使用jQuery的或純老JavaScript來獲取包含的XML元素的所有屬性名稱的數組?我期望這樣:
['oy','foo','here','another']
的jQuery function是不是真的意味着解析XML,它可以解析HTML,但它不是真的一樣。
怎麼樣使用瀏覽器的XML解析器:
function parseXML(text) {
var parser, xmlDoc;
if (window.DOMParser) {
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
} else { // IE
xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(text);
}
return xmlDoc;
}
// Demo
var doc = parseXML('<foo oy="vey" foo="bar" here="is" another="attribute" />');
var foo = doc.childNodes[0];
for (var i = 0; i < foo.attributes.length; i++) {
var attr = foo.attributes[i];
alert(attr.name + " = " + attr.value);
}
運行上面的代碼here。
This plugin會幫助你做到這一點。
您也可以使用它老式使用的東西的JavaScript這樣做:
var elt = document.getElementsByTagName('id');
for (i=0;i<elt.attributes.length;i++){
//elt.attributes[i].nodeName is what you want, .nodeValue for its value.
}
jquery並不真正支持從字符串文字形成XML。它可以在Firefox中使用,也可以在其他瀏覽器中使用,但不能使用IE。請參閱http://docs.jquery.com/Core/jQuery:「一個即時創建的HTML字符串。請注意,這將解析HTML,而不是* XML。」 – Funka
哦,我還要提一下,有些插件可以讓你做到這一點,如果你想。 – Funka