如果元素是由.append()
方法创建的,如何检查元素是否存在?
$('elemId').length
对我不起作用。
答案 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
}