Jquery-查找具有包含给定文本值的特定类的类的div

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

我需要一些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">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'));