HTML
<ul id="list" class="uol">
<li>beta</li>
<li>gamma</li>
<li>alpha</li>
<li>beta</li>
<li>zeta</li>
<li>BETA</li>
</ul>
<input id="find" type="button" value="Find" />
<input id="remove" type="button" value="Remove" />
JavaScript
$('#find').click(function(){
$('#list li').filter(function(){
return $(this).siblings().text().toUpperCase().indexOf($(this).text().toUpperCase()) != -1;
}).addClass('selecteditems');
});
$('#remove').click(function(){
var removed = [];
$('.selecteditems').each(function(i, item){
if($.inArray($(item).text().toUpperCase(), removed) != -1){
$(item).remove();
}
else{
removed.push($(item).text().toUpperCase());
$(item).removeClass('selecteditems');
}
});
});
当您单击查找按钮时,过滤器将应用于<li>
无序列表中带有 id 的每个项目list
。然后它获取所有其他<li>
项目的,将它们的文本一起添加到一个字符串中并将其大写。然后它检查当前<li>
项目是否包含在该字符串中。如果它在那里,它会返回 true 以便将类selecteditems
添加到其中。
当您单击删除按钮时,它会删除除第一<li>
项之外的所有内容selecteditems
,并从第一项中删除该类<li>
。
在这里查看。
如果您想绝对确定您正在检查单个项目而不是检查所有项目的字符串,您可以将查找代码更改为:
$('#find').click(function(){
$('#list li').filter(function(){
var sibs = [];
$.map($(this).siblings(), function(sibling){
sibs.push($(sibling).text().toUpperCase());
});
return $.inArray($(this).text().toUpperCase(), sibs) != -1;
}).addClass('selecteditems');
});