Мне нужна помощь 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>
Что мне нужно найти: 1) div с именем класса "searchable" 2) для этих div, найти те, которые имеют элементы span с классом "Tag", потому что не все доступные для поиска div имеют класс тэгов 3) найдите в ЛЮБЫХ тэгах текстовое значение, не равное миру "Cool". Таким образом, в приведенном выше примере, должны быть возвращены второй и третий div. Другими словами, если какой-либо тег имеет текстовое значение Cool, не возвращайте его. И мне нужно вернуть «доступный для поиска» div, а не элементы span.
Я пробовал это:
$('.searchable .tag:textNotEquals("Cool")').each(function () {
$(this).closest('.searchable').hide();
});
textNotEquals реализованы так:
$.expr[':'].textNotEquals = $.expr.createPseudo(function (arg) {
return function (elem) {
return !$(elem).text().match("^" + arg + "$");
};
});
Мой код выше работает частично, возвращается только первое совпадение. Если у меня есть несколько совпадений div, это не работает. Кроме того, я надеялся, что есть простой способ сделать это. Мой код кажется слишком сложным. Буду признателен за любую оказанную помощь.