检查jQuery中是否存在元素

时间:2011-01-04 10:15:11

标签: javascript jquery

如果元素是由.append()方法创建的,如何检查元素是否存在? $('elemId').length对我不起作用。

8 个答案:

答案 0 :(得分:1601)

  

$('elemId').length不起作用   我

您需要将#放在元素ID:

之前
$('#elemId').length
---^

使用vanilla JavaScript,您不需要哈希(#),例如document.getElementById('id_here'),但是在使用jQuery时,您需要像CSS一样基于id将哈希值放到目标元素中。

答案 1 :(得分:329)

尝试检查选择器的长度,如果它返回了某些内容,则元素必须存在,否则不存在。

 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
}

答案 2 :(得分:117)

试试这个:

if ($("#mydiv").length > 0){
  // do something here
}

如果element不存在,则length属性将返回零。

答案 3 :(得分:58)

  

如何检查元素是否存在

if ($("#mydiv").length){  }

如果是0,则会评估为false,而不是true

不需要大于,小于比较。

答案 4 :(得分:27)

您的elemId顾名思义,是一个Id属性,您只需检查它是否存在:

Vanilla JavaScript:,以防您拥有更多高级选择器:

//you can use it for more advanced selectors
if(document.querySelectorAll("#elemId").length){}

if(document.querySelector("#elemId")){}

//you can use it if your selector has only an Id attribute
if(document.getElementById("elemId")){}

<强> jQuery的:

if(jQuery("#elemId").length){}

答案 5 :(得分:13)

您还可以使用类似数组的表示法并检查第一个元素。 空数组或集合的第一个元素只是undefined,因此您可以获得“正常”的javascript truthy / falsy行为:

var el = $('body')[0];
if (el) {
    console.log('element found', el);
}
if (!el) {
    console.log('no element found');
}

答案 6 :(得分:9)

您可以使用本机JS来测试对象的存在:

if (document.getElementById('elemId') instanceof Object){
    // do something here
}

不要忘记,jQuery只不过是一个复杂的(并且非常有用)本机Javascript命令和属性的包装器

答案 7 :(得分:-15)

如果你的元素上有一个类,那么你可以尝试以下方法:

if( $('.exists_content').hasClass('exists_content') ){
 //element available
}