编程语言
首页 > 编程语言> > javascript – Jquery检查是否具有id = x的li已经存在于ul中

javascript – Jquery检查是否具有id = x的li已经存在于ul中

作者:互联网

我和李有很多UL.不同的UL将具有相同ID的li:

<ul>
 <li id='1'>this</li>
 <li id='2'>that</li>
</ul>

<ul>
 <li id='1'>this</li>
</ul>

用户可以将li从列表拖到另一个列表,但前提是不存在具有相同id的li.到目前为止我有这个:

$(".container").droppable({
        drop: function (event, ui) {
            var a = $(this).find("li").attr("id", $(ui.draggable).attr('id'));
            if (a.length == 0) {
                $.ajax({
                    ...
                });
            }                
        }
    });

但是当我删除draggable时,它会将所有li的id更改为删除的li的值.

任何指导都会很棒.谢谢.

解决方法:

通过使用attr(),您实际上设置了find()调用匹配的任何元素的id属性.您应该在匹配的ID上使用find.

$(".container").droppable({
    drop: function (event, ui) {
        var a = $(this).find("#" + $(ui.draggable).attr('id'));
        if (a.length === 0) {
            $.ajax({
                ...
            });
        }                
    }
});

另外,正如@Diodeus所提到的,ID不应该以数字开头.它们在文档范围内也应该是唯一的,因此如果您需要重复/期望ID,我建议使用其他属性,例如HTML5数据属性:http://ejohn.org/blog/html-5-data-attributes/

标签:javascript,jquery-selectors,jquery-ui,drag-and-drop,jquery-ui-draggable
来源: https://codeday.me/bug/20190610/1211130.html