Я использую следующий 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 есть одно слово, код работает отлично и скрывает те элементы, которыене содержат этаг.Моя проблема в том, что когда etag состоит из нескольких слов (и я не могу его контролировать. Он приходит из базы данных и может быть комбинацией нескольких слов, разделенных пробелом), тогда код не работает ..
есть ли способ добиться этого?