jQuery xml найти узлы без определенного дочернего элемента - PullRequest
0 голосов
/ 04 февраля 2010

возможно ли найти все узлы, у которых нет указанного дочернего узла?

например:

(XML)

<item>
    <name>item 1</name>
    <admin>true</admin>
</item>

<item>
    <name>item 2</name>
    <admin>true</admin>
</item>

<item>
    <name>item 3</name>
    <parent>item 1</parent>
    <url></url>
    <admin>false</admin>
</item>

Я хочу выбрать все узлы, у которых нет дочернего узла "родитель". Я могу сделать это, если я установлю атрибут с именем parent и вызову:

(JQuery)

$(xml).find("item:not([parent])").each

но мне было интересно, возможно ли это, используя вместо этого дочерний узел.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2010

Вы можете получить другие хорошие предложения - возможно, основанные только на селекторах - но я считаю, что это будет работать.

$('item').filter(function() {
    return $(this).find('parent').length === 0;
}).doSomethingWithTheSetOfItemsWithoutParents();

ОБНОВЛЕНИЕ

На основе документация для селектора , я думаю, что этот сделает то, что вы хотите:

$('item:not(:has(parent))')
0 голосов
/ 04 февраля 2010

Не могли бы вы использовать собственный селектор jQuery parent () ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...