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

12 浏览
0 Comments

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

点击元素时,我有一个函数,它会将添加到该元素上。该函数获取被点击元素的文本,并将其赋值给一个名为name的变量。然后,该变量被用作附加元素的 id。\n在附加元素之前,我需要检查是否已经存在一个带有name id,但我不知道如何找到它。\n这是我的代码:\n

$("li.friend").live('click', function() {
  name = $(this).text();
  // if-statement checking for existence of  should go here
  // 如果不存在,则附加元素
    $("div#chatbar").append("" + name + "");
  // 否则
    alert('this record already exists');
});

\n这似乎非常简单,但我收到了“在搜索类名时出现意外的文件结束”的错误。我不知道这是什么意思。\n

if (document.getElementById(name)) {
  $("div#" + name).css({bottom: '30px'});
} else {
  $("div#page-content div#chatbar").append("" + name + "");
}

\n更重要的是,我希望能够在关闭元素时删除它,这应该从文档中删除div id [name],但.remove()无法做到这一点。\n以下是此功能的代码:\n

$(".mini-close").live('click', function(){
  $(this).parent().remove();
});

\n我将.mini-close作为.labels的子元素添加到附加函数中,以便在需要时关闭附加的。单击.mini-close并尝试再次从li.friends点击相同的名称时,它仍然会找到div id [name]并返回我if语句的第一部分。

0
0 Comments

使用jQuery中的length属性可以判断特定id的div元素是否存在。如果length返回一个值,那么该元素存在;否则,该元素不存在。

具体的解决方法是使用if条件语句,通过判断选择器的length属性来确定特定id的div元素是否存在。如果使用id选择器,则应使用$('#selector').length来判断;如果使用class选择器,则应使用$('.selector').length来判断。

以下是具体的代码示例:

if( $('#selector').length )         // 使用这个条件判断语句来检查id选择器
{
     // 元素存在
}
if( $('.selector').length )         // 使用这个条件判断语句来检查class选择器
{
     // 元素存在
}

0
0 Comments

问题的出现原因是用户想要在jQuery中找到具有特定id的div元素。用户提供了一种解决方法,即使用getElementById的返回值作为条件进行判断。如果返回值不为null,则表示div元素存在,否则表示div元素不存在。然而,用户在将alert()函数替换为其他函数时遇到了错误。错误提示为“unexpected end of file while searching for class name”,可能是缺少了括号或分号的问题。用户还提出了是否有其他解决方法的问题。

解决方法是使用循环遍历数组,并针对每个数组元素调用getElementById方法,以找到每个具有特定id的div元素。

0
0 Comments

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

问题的原因:通过判断特定id的div是否存在,可以根据不同的情况执行相应的操作。这个问题的解决方法是使用jQuery的选择器和.length属性来判断div是否存在。

解决方法:可以使用选择器和.length属性来判断特定id的div是否存在。代码示例如下:

if ($("#" + name).length == 0) {
  //it doesn't exist
}

完整的版本如下:

$("li.friend").live('click', function(){
  name = $(this).text();
  if ($("#" + name).length == 0) {
    $("div#chatbar").append("
" + name + "
"); } else { alert('this record already exists'); } });

或者,如果是ID的话,也可以使用非jQuery的方法来判断:

$("li.friend").live('click', function(){
  name = $(this).text();
  if (document.getElementById(name) == null) {
    $("div#chatbar").append("
" + name + "
"); } else { alert('this record already exists'); } });

这里有一些关于代码的讨论:

- 有人遇到问题,通过弹出特定id的div的长度来进行排查,但是没有找到。

- 有人建议提供示例标记代码,因为这个问题相对简单,所以应该很容易解决。

- 有人指出如果$("#" + name).length) { }这样的判断已经足够,不需要判断是否等于0。

- 有人指出这种判断是相反的,正确的写法应该是!$("#"+name).length)。

- 有人提醒说代码末尾的.append()行缺少一个");"。

- 有人询问是否有其他的解决方法。

- 有人建议提供完整的代码,因为没有展示创建.mini-close元素的部分,所以无法确定选择器/遍历是否正确。

- 有人表示不知道自己做错了什么,但现在已经解决了,这意味着你的建议是有效的。谢谢Nick!

- 有人表示不太理解第二个示例怎么是非jQuery的?此外,live()方法已经被弃用并在v1.9中被删除。

- 有人解释说他只是指示问题中的特定部分是非jQuery的,存在检查在很多情况下并不需要或者从jQuery中受益。这个答案是在4年前的,所以在手机上不能编辑。

- 有人建议使用===而不是==来进行比较。

0