我在条件语句中使用.length
方法,该方法轮询页面是否存在外部加载的对象(我不能使用jQuery设置样式直到它存在):
function hackyFunction() { if($('#someObject').length<1) { setTimeout(hackyFunction,50) } else { $('#someObject').someMethod() }}
length
是最好的方法吗?
答案 0 :(得分:11)
如果您只是在寻找特定元素,可以使用document.getElementById
function hackyFunction() {
if (document.getElementById("someObject")) {
// Exist
} else {
// Doesn't exist
}
}
答案 1 :(得分:4)
是的,您应该使用.length
。你不能使用if ($('#someObject')) ...
因为jQuery selectors返回一个jQuery对象,而且任何对象在JavaScript中都是真实的。
答案 2 :(得分:3)
如果你正在寻找一个ID,那么它应该只有其中一个,所以你也可以这样写:
if($('#someObject')[0])
答案 3 :(得分:2)
是的,.length
是可以接受的,通常是我使用的。
答案 4 :(得分:1)
使用jQuery,检查长度可以正常工作。
if (!$('#someObject').length) {
console.log('someObject not present');
}
当然使用vanilla JavaScript,您只需查看document.getElementById
(如果按ID获取元素)
if (document.getElementById('someObject')) {
console.log('someObject exists');
}