2010-02-08 41 views
2

我需要迭代XML項目。javascript jquery迭代簡單XML

示例XML:

<items> 
    <name>234</name> 
    <email></email> 
    <phone></phone> 
    <phone2></phone2> 
    <phone7>33</phone7> 
</items> 

我嘗試了很多的組合,但沒有成功。例如:

var xml=' <items><name>234</name> <email></email><phone></phone></items>' 

$(xml).find('items\').each(function() { 
    alert($(this).text() + ':' + $(this).value()); 
}); 
+0

Dup的:http://stackoverflow.com/問題/ 1735026/jquery-iterate-through-all-xml-tags – Li0liQ 2010-02-08 22:52:52

回答

3

麻煩的是,在你的榜樣,<items>...</items>是根節點 - 它xml變量。所以,如果你想它的孩子,你可以這樣做:

var xml='<items><name>234</name> <email></email><phone></phone></items>'; 
$(xml).children.each(function() { 
    alert(this.nodeName + ':' + $(this).text()); 
}); 

如果你想在<items>節點本身,你可以簡單地做:

var xml='<items><name>234</name> <email></email><phone></phone></items>'; 
$(xml).each(function() { 
    alert(this.nodeName + ':' + $(this).text()); 
}); 
+0

非常感謝 ps 小字謎應該是children()而不是children – wicherqm 2010-02-08 23:14:26

0
var xml=' <items><name>234</name> <email></email><phone></phone></items>'; 

$(xml).find('items').each(function() { 
alert(this.nodeName + ':' + $(this).text()); 
}); 
+0

find('items')將不起作用,因爲items是根節點。 – wsanville 2010-02-08 22:59:37

+0

'find('items')'does not,but'filter('items')'does,if case – munch 2010-02-08 23:27:20

0

它應該是:

$(xml).find('items').each(function(){ 
    var name = $(this).find('name').text(); 
    alert(name); 
});