Jquery检查是否存在ul中的id与id =
我有许多UL与li。不同的UL将具有相同ID李:Jquery检查是否存在ul中的id与id =
<ul>
<li id='1'>this</li>
<li id='2'>that</li>
</ul>
<ul>
<li id='1'>this</li>
</ul>
用户可以从列表里拖动到另一个,但只有当具有相同id李不存在。到目前为止,我有这样的:
$(".container").droppable({
drop: function (event, ui) {
var a = $(this).find("li").attr("id", $(ui.draggable).attr('id'));
if (a.length == 0) {
$.ajax({
...
});
}
}
});
但是,当我放弃可拖动它将所有李的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/
ID不能以数字开头,并且必须是唯一的。对于非唯一标识符,请使用类。
您可以检查,看看是否存在这样一个元素:
if($('#myDIV').length) {
}
Diodeus,我只想检查一个列表可丢弃的容器)并非整个页面 – abarr 2011-04-13 13:10:54
@abarr - Diodeus意味着您无法在页面上复制ID。见http://www.w3.org/TR/html40/struct/global.html#h-7.5.2 – 2011-04-13 13:16:22
谢谢,我需要知道 – abarr 2011-04-14 10:37:02