私は次のjQueryを使用しています
var etag = 'kate'
if (etag.length > 0) {
$('div').each(function () {
$(this).find('ul:not(:contains(' + etag + '))').hide();
$(this).find('ul:contains(' + etag + ')').show();
});
}
次のHTMLに向けて
<div id="2">
<ul>
<li>john</li>
<li>jack</li>
</ul>
<ul>
<li>kate</li>
<li>clair</li>
</ul>
<ul>
<li>hugo</li>
<li>desmond</li>
</ul>
<ul>
<li>said</li>
<li>jacob</li>
</ul>
</div>
<div id="3">
<ul>
<li>jacob</li>
<li>me</li>
</ul>
<ul>
<li>desmond</li>
<li>george</li>
</ul>
<ul>
<li>allen</li>
<li>kate</li>
</ul>
<ul>
<li>salkldf</li>
<li>3kl44</li>
</ul>
</div>
基本的に、etagに1つの単語がある限り、コードは完全に機能し、etagを含まない要素を非表示にします。私の問題は、etagが複数の単語である場合(そして私はそれを制御できません。データベースからのものであり、スペース文字で区切られた複数の単語の組み合わせである可能性があります)、コードが機能しないことです。
これを達成する方法はありますか?