从无序列表中删除唯一项

时间:2013-03-28 16:30:42

标签: jquery duplicates

我有两个无序列表。我想从第一个中删除第二个列表中不存在的项目。

像这样:

<ul class="first">
    <li><a href="#">One</a></li>
    <li><a href="#">Two</a></li>
    <li><a href="#">Three</a></li>
    <li><a href="#">Four</a></li>
    <li><a href="#">Five</a></li>
    <li><a href="#">Six</a></li>
</ul>

<ul class="second">
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
    <li>Four</li>
</ul>

...运行脚本......应该是这样的:

<ul class="first">
    <li><a href="#">One</a></li>
    <li><a href="#">Two</a></li>
    <li><a href="#">Three</a></li>
    <li><a href="#">Four</a></li>
</ul>

我的问题与此处发布的问题完全相同 - jquery Remove items from list 1 not in list 2

...但是,我似乎无法使用我的代码(它什么都不做)。

这是我试过的:

$('.first li a').filter(
    function(){
    return !$('.second li').length;
}).remove();

使用其他代码,我已经能够删除重复项。但是,我遇到了相反的问题。我确定我忽略了一些简单的东西,我很欣赏第二组眼睛向我指出问题是什么。

1 个答案:

答案 0 :(得分:4)

$('.first li').filter(function(){
    return ! $('.second li:contains('+$(this).text()+')').length;
}).remove();