首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在无序列表中查找重复项

在无序列表中查找重复项
EN

Stack Overflow用户
提问于 2014-11-03 11:18:03
回答 1查看 882关注 0票数 1

我有两个无序的名单。动态填充一个无序列表,然后双击它的项,将其添加到另一个无序列表中。

我正在研究如何检测动态填充列表中的项是否还在另一个列表中。如果是的话。那就不应该再加了。不想添加重复的项目。

填充ul的代码:

代码语言:javascript
复制
.done(function(html) {
        var results = jQuery.parseJSON(html);
        $('#store_sel').children().remove();

            for (var i = 0; i <= results.length; i++){

                $("#store_selection").append("<li class='" + results[i].name + " stores'" + "id= " + results[i].uuid + 
                + ">" + results[i].name + "</li>");

        }      
    });

活动:

代码语言:javascript
复制
$('#store_selection').on('dblclick', 'li', function(e) {
    e.stopPropagation();
    e.preventDefault();

    if ($('#store_selected').find($(this))) {
        console.log('item already there');
    } else {
        $('#store_selected').append($(this).clone());
        //$(this).remove();
    }       
});

编辑:为什么这不起作用?它基本上会转到console.log,即使ul是空的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-03 11:34:04

if语句中有几个问题。

  1. 一个元素不能同时出现在两个地方。因此,您无法在两个列表中找到this
  2. 对象总是返回真实的。使用返回选择器集合的length

因为ID在页面中必须是唯一的,所以我建议您使用data-属性来存储UUID

代码语言:javascript
复制
<li data-uuid="xxxx-yyy">

然后当你搜索:

代码语言:javascript
复制
var uuid = $(this).data('uuid')
if ($('#store_selected').find('.stores[data-uuid='+uuid+']').length) {
    console.log('item already there');
} else {
    $('#store_selected').append($(this).clone());
    //$(this).remove();
}     
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26713110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档