Jquery-查找具有包含给定文本值的特定类的类的div
我需要一些jquery帮助。这是我的HTML代码:Jquery-查找具有包含给定文本值的特定类的类的div,jquery,Jquery,我需要一些jquery帮助。这是我的HTML代码: <div class="searchable"><span class="tag">Cool</span><span class="tag">Beautiful</span></div> <div class="searchable"><span class="tag">Not Cool</span><span class="tag
<div class="searchable"><span class="tag">Cool</span><span class="tag">Beautiful</span></div>
<div class="searchable"><span class="tag">Not Cool</span><span class="tag">Tall</span></div>
<div class="searchable"><span class="something">...</span></div>
textNotEquals的实现方式如下:
$.expr[':'].textNotEquals = $.expr.createPseudo(function (arg) {
return function (elem) {
return !$(elem).text().match("^" + arg + "$");
};
});
我上面的代码部分工作,只返回第一个匹配项。如果我有多个div匹配,它就不起作用。另外,我希望有一个简单的方法来做到这一点。我的代码似乎太复杂了。非常感谢您的帮助 我敢肯定,光靠选择器是做不到这一点的。你得捏造点什么 例如:
$('.searchable').filter((idx, el) => $(el).find('span.tag').map((idx, el) => $(el).text()).get().indexOf('Cool') === -1);
在英语中,查找所有class=“searchable”
元素,其中没有`元素包含单个单词“Cool”
或者,反转逻辑并使用。而不是:
$('.searchable').not($('span.tag').filter((idx, el) => $(el).text() === 'Cool').closest('.searchable'));
在英语中,查找所有class=“searchable”
元素,但排除至少有一个`元素包含单个单词“Cool”的元素
这两种方法都可以通过进一步的努力简化谢谢您的代码!第一个似乎对我有用。但是,我无法将变量传递给它。单词“Cool”是一个变量,但当我将其更改为实际变量时,它就不起作用了$('.searchable').filter((idx,el)=>$(el.find('span.tag').map((idx,el)=>$(el.text()).get().indexOf(“'+tag+”)====-1.hide();我得到了它--$('.searchable').filter((idx,el)=>$(el.find('span.tag').map((idx,el)=>$(el.text()).get().indexOf(tag)===-1.hide();应该这样做。
$('.searchable').not($('span.tag').filter((idx, el) => $(el).text() === 'Cool').closest('.searchable'));