微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery从列表1中删除不在列表2中的项目

我有一个看似非常简单的问题,但是我的带宽现在已经非常有限了,并且搜索了SO但是发现 a relevant question只适用于C#,我的意思是没有运气.

HTML:

<ul class="first">
  <li data-id="1">One</li>
  <li data-id="2">Two</li>
  <li data-id="3">Thre</li>
  <li data-id="4">Four</li>
  <li data-id="5">Five</li>
  <li data-id="6">Six</li>
</ul>
<ul class="second">
  <li data-id="1">One</li>
  <li data-id="2">Two</li>
  <li data-id="3">Thre</li>
  <li data-id="4">Four</li>
</ul>

我想从第一个删除最后两个项目(因此是五个和六个),因为它们不存在于第二个项目中.订单实际上并不重要.样本简化了我的问题.
基本上没有明确的想法来实现这一点,抱歉,所以每当我尝试使用.length检查时,我会删除所有第一项.

非常感谢任何提示.谢谢

更新:
对不起这是我的错.
“订单实际上并不重要”:我的意思是列表可能是无序的,如:

<ul class="second">
  <li data-id="3">Thre</li>
  <li data-id="1">One</li>      
  <li data-id="4">Four</li>
  <li data-id="2">Two</li>
</ul>

也适用于第一个.

解决方法

如果您通过data-id属性评估等效性:

$('.first li').filter(
    function(){
        return !$('.second li[data-id="' + $(this).data('id') + '"]').length;
    }).remove();​

JS Fiddle demo.

参考文献:

> data().
> filter().

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐