代码之家  ›  专栏  ›  技术社区  ›  Andrey Fedorov

我可以使用jQuery按内容选择文本节点吗?

  •  6
  • Andrey Fedorov  · 技术社区  · 14 年前

    如何选择一个 <a href="...">foo</a> DOM节点,知道 foo ?

    1 回复  |  直到 14 年前
        1
  •  14
  •   Nick Craver    14 年前

    你可以用 .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();