我正在尝试获取XML响应中元素的所有属性的数组。
$(xData.responseXML).find("[nodeName=z:row]").each(function() {
console.info($(this).attr("ows_Title"));
...
这将返回ows_Title的正确值,但我想找出z:row具有的所有属性。我怎么能这样做,并让它在所有浏览器中工作?我有一个适用于FF和Chrome的方法,但它在IE中不起作用。 IE似乎没有认识到XML元素具有属性,但是当我专门查看“ows_Title”之类的内容时,它会看到它们。
这个怎么样:
for(var key in this.attributes) {
if(!isNaN(key)) {
if(!prefix || this.attributes[key].name.substr(0,prefix.length) == prefix) {
attributes.push(this.attributes[key].name);
}
}
}
当我执行console.info(this.attributes)时,即使它出现了NamedNodeMap,也不会在IE中执行任何操作:
for(var key in this.attributes) {
alert("test");
...
答案 0 :(得分:1)
想出来。我最后只是迭代了。
if(jQuery) {
jQuery.fn.listAttributes = function() {
var attributes = new Array();
$(this).each(function() {
for (var i=0; i<this.attributes.length; i++)
{
attributes.push(this.attributes.item(i).nodeName);
}
});
return attributes;
}
}
答案 1 :(得分:0)
尝试:
$(xData.responseXML).find("[nodeName=z:row]").each(function() {
console.info(this.attributes);
...