2011-08-12 24 views
0

XML応答の要素のすべての属性の配列を取得しようとしています。JQuery - XML要素のすべての属性を取得

$(xData.responseXML).find("[nodeName=z:row]").each(function() { 
    console.info($(this).attr("ows_Title")); 
    ... 

これは、ows_Titleに正しい値を返しますが、z:行にあるすべての属性を調べる必要があります。どのようにすれば、すべてのブラウザで動作させることができますか?私はFFとChromeで動作するメソッドを持っていますが、IEでは動作しません。 IEはXML要素に属性があることを認識していないようですが、特に「ows_Title」のようなものを見たときにその要素が表示されます。これは私がconsole.info(this.attributes)を行うときに、それはNamedNodeMapですとアップしても、IEで何もしない

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); 
    } 
    } 
} 

for(var key in this.attributes) { 
    alert("test"); 
    ... 

答えて

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; 
    } 
} 
0
これについて何

試してみてください。

$(xData.responseXML).find("[nodeName=z:row]").each(function() { 
    console.info(this.attributes); 
... 
+0

適切な数の属性を持つ「NamedNodeMap」が登場します。これはどうしますか? – Christian

+0

私は元の投稿にしようとしている別のものを追加しました。「これについてはどうですか?」という部分を見てください。 – Christian

+0

完全な例を使ってjsfiddle.netを作成できますか? – ChristopheCVB

関連する問題