如何在jquery中搜索文本?

时间:2011-08-16 12:12:24

标签: javascript jquery text full-text-search

我有一个问题,如果我想使用jquery在任何页面中搜索特定文本。我不想要的是那个

<p id="1">iii</p>
<p id="2">i</p>
<p id="3">ibiib</p>
<p id="4">bb</p>
<p id="5">tina</p>

 <script type="text/javascript">
    console.log($("div:contains('i')"));
 </script>

以上代码给出了除id = 4以外的所有段落;但我想要的只是选择id = 2的段落。 如果有办法在javascript或任何其他图书馆中回复我...

6 个答案:

答案 0 :(得分:4)

使用$.filter

这将返回div s,其中只包含一个i

$('div').filter(function () {
    return $(this).html() == 'i';
});

答案 1 :(得分:3)

$('p').filter(function() {
    return $(this).text() === 'i';
});

答案 2 :(得分:1)

$("p").each(function(a,b){
   if ($(this).html() == 'i'){
      console.log(a);
   }
});

$("p").filter(function(){
   return $(this).html() == 'i';
});

答案 3 :(得分:1)

您可以遍历段落并检查其内容是否与所需内容相同。我使用了jQuery循环,如果你愿意,可以使用javascript。 JSFIDDLE

$('p').each(function() {
    if(this.innerHTML == 'i') doWhateverYouWant();
});

答案 4 :(得分:1)

我会使用一个简单的插件:

$.fn.exactMatch = function(str) {
    return this.filter(function() {
        return $(this).text() === str;
    });
};

$("p").exactMatch("i").css("border", "1px solid red");

You can try it here.

答案 5 :(得分:1)

您可以扩展jQuery的选择器引擎以添加新引擎:

$.expr[':'].texteq = function( elem, i, match, array ) {
    return $(elem).text() === match[3];
};

console.log($('p:texteq(i)'));

Example