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({
                    ...
                });
            }                
        }
    });
但是,当我放置可拖动对象时,它将所有li的ID更改为所放置li的值。 任何指导都会很棒。谢谢。     
已邀请:
通过使用
attr()
,您实际上是在设置与
find()
调用匹配的任何元素的
id
属性。您应在与之匹配的ID上使用ѭ5。
$(\".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 -属性/     
ID不能以数字开头,并且必须是唯一的。对于非唯一标识符,请使用类。 您可以检查是否存在这样的元素:
if($(\'#myDIV\').length) {

}
    

要回复问题请先登录注册