【发布时间】:2010-05-23 00:54:51
【问题描述】:
我正在使用以下 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 的元素。我的问题是,当 etag 是多个单词时(我无法控制它。它来自数据库,并且可能是用空格字符分隔的多个单词的组合)然后代码不起作用..
有什么办法可以做到吗?
【问题讨论】: