根据EXACT文本内容选择元素

Jas*_*son 40 jquery

我有一个div列表,所有div都包含一个p被归类为的标签index.这些p标签的文本内容是从1到n的数字(尽管可能不超过30-40).我有以下选择器,在初步测试中工作正常:

var ad = $('.existing_ad .index:contains('+index+')').parents('.existing_ad');
Run Code Online (Sandbox Code Playgroud)

index我从p标签中检索的数字索引在哪里,是.existing_ad父类的div.正如我所说,这很好......直到我的数字更高.例如,当索引为1时,它选择.existing_ad索引具有A 1 IN IT 的s ,例如1,10-19,21,31等.

我怎样才能获得索引n

nic*_*ckf 53

这个怎么样:

$('.existing_ad .index').filter(function() {
    return $(this).text() == index;
}).parents('.existing_ad');
Run Code Online (Sandbox Code Playgroud)


Axi*_*ili 27

如果你经常使用它,你可以创建一个扩展

$.expr[":"].containsExact = function (obj, index, meta, stack) {
  return (obj.textContent || obj.innerText || $(obj).text() || "") == meta[3];
};
Run Code Online (Sandbox Code Playgroud)

$('div:containsExact('John')会匹配<div>John</div>但不会<div>Johnny</div>

对于原始问题,它将是

var ad = $(".existing_ad .index:containsExact('"+index+"')").parents('.existing_ad');
Run Code Online (Sandbox Code Playgroud)

  • 恕我直言,这应该是公认的答案 (6认同)