使用jQuery按值选择带元素的元素

时间:2011-09-07 12:31:07

标签: javascript jquery xml

如果我有以下XML:

<Books>
    <Book>
        <Name>Test</Name>
        ...
    </Book>
    <Book>
        <Name>Another one</Name>
        ...
    </Book>
</Books>

如何使用jQuery的名称值等于“test”的子元素选择Book元素?

4 个答案:

答案 0 :(得分:9)

var book = $xml.find( 'Name' ).filter(function () {
    return $( this ).text() === 'Test';
}).parent();

其中$xml是表示XML文档的jQuery对象。我假设您通过Ajax加载XML文档。在这种情况下,您可以构造这样的jQuery对象:

var $xml = $( data );

其中data是Ajax响应。

答案 1 :(得分:4)

$('Books Book Name:contains("Test")')

http://api.jquery.com/contains-selector/

(这将匹配“测试”以及“数学测试”和“这只是一个测试”。)

答案 2 :(得分:4)

$("Books Book Name:Contains('Test')");

答案 3 :(得分:0)

To avoid selecting Name element, use the .has() filter function like so:

$('Books Book').has('Name:contains("Test")')

This will return the Book items with the name of "Test".