2011-08-12 4 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"과 같은 속성을 특별히 찾으면 속성을 보게됩니다.

이것에 대해 무엇 :

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"); 
    ... 

답변

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

관련 문제