根据EXACT文本内容选择元素

时间:2010-02-25 23:31:00

标签: jquery

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

var ad = $('.existing_ad .index:contains('+index+')').parents('.existing_ad');

index是我从p标记中检索到的数字索引,而.existing_ad是父div的类。正如我所说,这很好......直到我的数字更高。例如,当索引 1 时,它会选择索引HAS <1> IN IT的.existing_ad,例如, 1,10-19,21,31等

我怎样才能获得索引 n

2 个答案:

答案 0 :(得分:53)

这个怎么样:

$('.existing_ad .index').filter(function() {
    return $(this).text() == index;
}).parents('.existing_ad');

答案 1 :(得分:27)

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

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

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

对于原始问题,它将是

var ad = $(".existing_ad .index:containsExact('"+index+"')").parents('.existing_ad');