Как я могу использовать метод .find в jQuery с регулярным выражением в качестве параметра? - PullRequest
2 голосов
/ 31 августа 2011

У меня есть xml, который я хотел бы найти "похожими" результатами, аналогично тому, что LIKE делает в SQL. Я думал о том, чтобы сделать что-то вроде $(xml).find('regexHere'), но я не знаю, как это сделать. Если это не самый лучший метод, не могли бы вы порекомендовать что-то еще? Данные, которые мне нужно искать, находятся в пределах параметров узла.

EDIT

$(xml).find('[cityName=Rio de Janeiro]') дает мне именно тот узел, который я ищу, потому что это точно такая же строка. Но, если я ищу Rio, я не получаю никаких результатов, даже если у узлов Рио де Жанейро и Рио Кларо есть строка, которую я ищу.

Я безуспешно пытался использовать $(xml).find('[cityName|="Rio"]'), не получилось ни одного результата, но если я перешел на Rio de Janeiro, я получил именно то, что мне нужно.

Ответы [ 2 ]

3 голосов
/ 31 августа 2011

Чтобы найти все элементы, которые имеют атрибут, соответствующий определенному регулярному выражению, вы можете использовать .find("*"), чтобы выбрать все элементы, а затем .filter(...), чтобы удалить все, которые не соответствуют:

Например, чтобы найти все узлы, чей атрибут message содержит «hello world»:

var elements = $(xml).find("*").filter(function() {
    return /[Hh]ello [Ww]orld/.test($(this).attr("message"));
});
2 голосов
/ 31 августа 2011

Вы можете разделить селекторы запятой или использовать .contents() и .filter().

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