我从AJAX调用中获取了一些XML(毫不奇怪),我想做一些事情,但只在某些节点上做其他事情。例如
<xml>
<node name="x">
</node>
<node name="x">
</node>
<node name="y">
</node>
<node name="z">
</node>
</xml>
我希望名称为x的所有节点都转到一个表格,我希望所有其他节点转到另一个表格。
答案 0 :(得分:19)
使用属性过滤器,尤其是attributeEquals filter:
$("node[name='x']");
要选择所有其他节点,请使用attributeNotEquals filter:
$("node[name!='x']");
然后,您可以应用jQuery manipulations将这些节点移动到其他位置。
请注意XPath样式的选择器在版本1.2中已弃用,并且已在jQuery 1.3中完全删除。
如果您可以影响服务器发送的内容,您可能希望切换到使用JSON,您可能会发现它更容易解析。
答案 1 :(得分:7)
success: function(xml) {
$(xml.find('node').each(function(){
if($(this).attr('name')=='x') {
//go to one table
} else {
//go to another table
}
}
}
答案 2 :(得分:1)
答案 3 :(得分:1)
jQuery也接受xpath表达式。
$('node[name="x"]')
将选择名为“node”的所有节点,其属性为“name”,其值为“x”