如何找到具有特定ID的div是否存在于jQuery中?
我有一个函数在点击时将一个<div>
附加到一个元素上。 该函数获取单击元素的文本并将其分配给一个名为name
的变量。 然后该变量用作附加元素的<div>
id
。
我需要在添加元素之前查看是否存在带有name
的<div>
id
,但我不知道如何找到它。
这是我的代码:
$("li.friend").live('click', function() {
name = $(this).text();
// if-statement checking for existence of <div> should go here
// If <div> does not exist, then append element
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
// Else
alert('this record already exists');
});
这看起来很简单,但我得到错误“搜索类名时文件意外结束”。 我不知道这意味着什么。
if (document.getElementById(name)) {
$("div#" + name).css({bottom: '30px'});
} else {
$("div#page-content div#chatbar").append("<div class='labels'>" + name + "</div><div id='" + name + "'></div>");
}
更重要的是,我希望能够删除这个元素,如果我关闭它,然后应该从文档中删除div id [name]
,但.remove()
不会这样做。
以下是该代码:
$(".mini-close").live('click', function(){
$(this).parent().remove();
});
我添加了.mini-close
作为.labels
一个子.mini-close
append函数,所以如果需要的.labels
,有一种方法可以关闭附加的<div>
。 点击.mini-close
并尝试再次从li.friends
单击相同的名称,它仍会找到div id [name]
并返回我的if
语句的第一部分。
您可以在选择器之后使用.length
来查看它是否匹配任何元素,如下所示:
if($("#" + name).length == 0) {
//it doesn't exist
}
完整版本:
$("li.friend").live('click', function(){
name = $(this).text();
if($("#" + name).length == 0) {
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
} else {
alert('this record already exists');
}
});
或者,这部分的非jQuery版本(因为它是一个ID):
$("li.friend").live('click', function(){
name = $(this).text();
if(document.getElementById(name) == null) {
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
} else {
alert('this record already exists');
}
});
尼克的回答指出了这一点。 您也可以直接使用getElementById的返回值作为您的条件,而不是将其与null进行比较(无论哪种方式都有效,但我个人觉得这种风格更具可读性):
if (document.getElementById(name)) {
alert('this record already exists');
} else {
// do stuff
}
尝试检查选择器的长度,如果它返回了某些东西,那么该元素必须存在,否则不存在。
if( $('#selector').length ) // use this if you are using id to check
{
// it exists
}
if( $('.selector').length ) // use this if you are using class to check
{
// it exists
}
使用第一个if条件为id,第二个为class。
链接地址: http://www.djcxy.com/p/83855.html