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

How to find if div with specific id exists in jQuery?

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

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

这是我的代码:

1
2
3
4
5
6
7
8
9
10
$("li.friend").live('click', function() {
  name = $(this).text();

  // if-statement checking for existence of  should go here
  // If  does not exist, then append element
    $("div#chatbar").append("" + name +"");

  // Else
    alert('this record already exists');
});

这看起来非常简单,但我收到错误"搜索类名时文件意外结束"。我不知道这意味着什么。

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

更重要的是,我希望能够删除此元素,如果我将其关闭,然后从文档中删除div id [name],但.remove()不会这样做。

这是代码:

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

我将.mini-close作为.labels的子项添加到append函数中,因此如果需要,可以关闭附加的。单击.mini-close并尝试再次从li.friends单击相同的名称后,它仍然找到div id [name]并返回if语句的第一部分。


您可以在选择器后面使用.length查看它是否与任何元素匹配,如下所示:

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

完整版:

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

或者,这部分的非jQuery版本(因为它是一个ID):

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


尼克的回答指出了它。您也可以直接使用getElementById的返回值作为条件,而不是将其与null进行比较(无论哪种方式都有效,但我个人认为这种风格更具可读性):

1
2
3
4
5
if (document.getElementById(name)) {
  alert('this record already exists');
} else {
  // do stuff
}


尝试检查选择器的长度,如果它返回一些东西,那么元素必须存在,否则不存在。

1
2
3
4
5
6
7
8
9
10
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
}

使用id的第一个if条件和class的第二个条件。


1
2
3
if($("#id").length) /*exists*/

if(!$("#id").length) /*doesn't exist*/

1
2
3
4
5
if ( $("#myDiv" ).length ) {
    //id id ("#myDiv" ) is exist this will perform
    $("#myDiv" ).show();

}

另一种简写方式:

1
    $("#myDiv" ).length && $("#myDiv" ).show();


您可以使用jquery进行检查,如下所示:

1
2
3
if($('#divId').length!==0){
      Your Code Here
}


最简单的方法是......

1
2
3
if(window["myId"]){
    // ..
}

这也是HTML5规范的一部分:https://www.w3.org/TR/html5/single-page.html#accessing-other-browsing-contexts#named-access-on-the-window-object

1
2
window[name]
    Returns the indicated element or collection of elements.


这是我使用的jQuery函数:

1
2
3
function isExists(var elemId){
    return jQuery('#'+elemId).length > 0;
}

这将返回一个布尔值。如果元素存在,则返回true。
如果要按类名选择元素,只需将#替换为.即可


你可以用不同的方式处理它,

目的是检查div是否存在然后执行代码。简单。

条件:

1
$('#myDiv').length

注意:

1
2
#myDiv -> < div id='myDiv' >
.myDiv -> < div class='myDiv' >

这将在每次执行时返回一个数字,所以如果没有div它将给出一个Zero [0],因为我们没有0可以在二进制中表示为false,所以你可以在if语句中使用它。你可以用它作为无数的比较。而下面有三个陈述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Statement 0
// jQuery/Ajax has replace [ document.getElementById with $ sign ] and etc
// if you don't want to use jQuery/ajax

   if (document.getElementById(name)) {
      $("div#page-content div#chatbar").append("" + name +"");
    }

// Statement 1
   if ($('#'+ name).length){ // if 0 then false ; if not 0 then true
       $("div#page-content div#chatbar").append("" + name +"");
    }

// Statement 2
    if(!$('#'+ name).length){ // ! Means Not. So if it 0 not then [0 not is 1]
           $("div#page-content div#chatbar").append("" + name +"");
    }
// Statement 3
    if ($('#'+ name).length > 0 ) {
      $("div#page-content div#chatbar").append("" + name +"");
    }

// Statement 4
    if ($('#'+ name).length !== 0 ) { // length not equal to 0 which mean exist.
       $("div#page-content div#chatbar").append("" + name +"");
    }

把你想要检查的id放在jquery中是方法。

1
2
3
4
5
6
7
8
9
10
var idcheck = $("selector").is("#id");

if(idcheck){ // if the selector contains particular id

// your code if particular Id is there

}
else{
// your code if particular Id is NOT there
}