Могу ли я использовать jQuery для выбора текстового узла по его содержимому? - PullRequest
6 голосов
/ 27 июня 2010

Как выбрать <a href="...">foo</a> узел DOM, зная foo?

1 Ответ

14 голосов
/ 27 июня 2010

Вы можете использовать .filter(), например:

$("a").filter(function() {
  return $(this).text() === "foo";
}).doSomething();

Существует также селектор :contains(), если вам не нужно точное соответствие, например так:

$("a:contains('foo')").doSomething();

Вместо точного соответствия это работает, если искомый текст находится где-либо в элементе.


В качестве альтернативы, если вы хотитеточно подбирайте и делайте это часто, создайте для этого селектор, например, так:

$.expr[":"].textEquals = function(obj, index, meta) { 
  return $(obj).text() === meta[3]; 
} 

Затем вы можете использовать его в любое время, например:

$("a:textEquals('foo')").doSomething();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...