JQuery XML выберите - PullRequest
       9

JQuery XML выберите

0 голосов
/ 20 апреля 2010

Как выбрать элементы, текст ключа субтэга которых начинается с '001'?

<root>
    <item>
        <key>001001</key>
        <text>thanks</text>
    </item>
    <item>
        <key>001002</key>
        <text>very</text>
    </item>
    <item>
        <key>002001</key>
        <text>much</text>
    </item>
</root>



$(xml).find("item>[filter string]").each(function()
{
    alert(this);
});

1 Ответ

1 голос
/ 20 апреля 2010

Вам нужно .filter() в этом случае:

$(xml).find("item").filter(function() {
  return $(this).find("key").text().indexOf('001') === 0;
}).each(function() {
    alert(this);
});

Фильтрует элементы по ключевым элементам, текст которых начинается с 001. Если бы вы могли вообще изменить схему, это было бы намного быстрее ... поиск в дочерних элементах фильтра в целом немного дороже, если вы имеете дело со многими элементами.

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

$(xml).find("item[key^=001]").each(function() { alert(this); });
...