2009-11-14 5 views
7

JQuery와 -

내가

<register> 
    <name>peter</name> 
    <age>12</age> 
</register> 
<register> 
    <name>mary</name> 
    <age>20</age> 
</register> 

그래서 난이 XML을받을 다음처럼 XMLS를 생성하는 PHP가 (이 잘 작동 방법 XML에서 모든 태그를 반복 할 모든 XML 태그를 반복)

$.ajax({success: function(xml) { 

    $(xml).find('register').each (function() 
    { 
    alert($(this).find('name').text()) // works fine, shows peter then mary on the next loop of "each" 



    // But if i dont know the tag names (name,age) for each register ?  

    // Something like 

     $(this).nodes().each .... // 
alert($(this).tagName); // i wanna show "name" & "age", how can i get the tag names inside each register in my xml sample tree? 

    });  

}}); 

답변

3

children() 함수를 살펴볼 수 있습니다. 함수에 대한 자세한 내용은 jQuery traversal documentation을 참조하십시오. ) ...

+0

덕분에 반복 사용에 대한 좋은 예를 제공하지만 여전히 난 = 그것을 ((슬픈 메신저 기운 다 jquery 도움말에서 var $ kids = $ (e.target) .children(); 하지만 여전히 prolly 내게 어떤 개체/배열 자식을 제공하지만 어떻게 각 어린이의 tagName 얻을합니까? 이 작업이 없습니다. $ (this) .children(). (function() {alert ($ (this) .tagName);}); // didnt work 이 방법도/모든 방법을 보여줍니다/att var childs = $ (this) .children(); \t (키 in 아동) 경고 (키); – dedoz

+3

마지막으로 .. var $ childs = $ (this) .children(); var length = $ childs.length; while (length--) alert ($ childs [length] .tagName); 대단히 감사합니다. – dedoz

11

이 링크는 XML을 통해 빠른 asnwer에 대한

xml.find('result').find('permissionDetails').each(function(){ 
    $(this).children().each(function(){ 
     var tagName=this.tagName; 
     var val=$(this).text(); 
     if(val==1){ 
      $('input:checkbox[name='+tagName+']').attr('checked',true); 
     } 
     else if(val==0){ 
      $('input:checkbox[name='+tagName+']').removeAttr('checked'); 
     } 
    }) 
}); 

http://anasthecoder.blogspot.in/2012/02/looping-through-xml-with-jquery.html