检查jQuery中是否存在元素

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

1620536 次浏览

$('elemId').length不适用于我。

您需要将#放在元素id之前:

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

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

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

 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( $('.exists_content').hasClass('exists_content') ){//element available}

试试这个:

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

如果元素不存在,长度属性将返回零。

顾名思义,你的elemId是一个Id属性,这些是你可以做的来检查它是否存在:

香草JavaScript:如果您有更高级的选择器:

//you can use it for more advanced selectorsif(document.querySelectorAll("#elemId").length){}
if(document.querySelector("#elemId")){}
//you can use it if your selector has only an Id attributeif(document.getElementById("elemId")){}

jQuery:

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

您可以使用原生JS来测试对象的存在:

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

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

如何检查元素是否存在

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

如果它是0,它将计算为false,比true更多。

没有必要进行大于,小于比较。

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

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