小编典典

如何查找具有特定id的div是否存在于jQuery中?

all

我有一个函数,<div>可以在点击时将 a 附加到元素上。该函数获取单击元素的文本并将其分配给名为 的变量name。然后将该变量用作<div>
id附加元素的。

在附加元素之前,我需要查看一个<div> idwith是否name已经存在,但我不知道如何找到它。

这是我的代码:

$("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因此有一种方法可以在<div>需要时关闭附加函数。单击.mini- close并尝试再次从中单击相同名称后li.friends,仍会找到并返回我的陈述div id [name]的第一部分。if


阅读 84

收藏
2022-04-27

共1个答案

小编典典

您可以.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');
  }
});
2022-04-27