2009-06-24 71 views
9

我从AJAX调用中获得了一些XML(并不令人意外),我想要做某些事情,但只能在某些节点上执行某些操作,而其他事情则需要执行其他操作。例如如何使用JQuery获取属性等于值的所有节点?

<xml> 
    <node name="x"> 
    </node> 
    <node name="x"> 
    </node> 
    <node name="y"> 
    </node> 
    <node name="z"> 
    </node> 
</xml> 

我想所有的名字X节点去一个表,我希望所有的人去到另一个表。

回答

19

使用属性过滤器,尤其是attributeEquals filter“名”的属性:

$("node[name='x']"); 

要选择所有其他节点,使用attributeNotEquals filter

$("node[name!='x']"); 

然后,您可以应用jQuery manipulations将这些节点移动到别处。

请注意,XPath风格的选择器在版本1.2中已弃用,并且已在jQuery 1.3中完全删除。

如果您可以影响服务器发送的内容,则可能需要切换为使用JSON,否则可能会发现解析更容易。

1

jQuery的接受xpath表达式也是如此。

$('node[name="x"]')

将选择所有名为“节点”的节点与具有值“X”

7
success: function(xml) { 
    $(xml.find('node').each(function(){ 
    if($(this).attr('name')=='x') { 
     //go to one table 
    } else { 
     //go to another table 
    } 

    } 
} 
相关问题