如何找到具有特定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

上一篇: How to find if div with specific id exists in jQuery?

下一篇: How to check null objects in jQuery