如何检查元素的存在?

时间:2010-10-10 13:42:38

标签: javascript jquery

我在条件语句中使用.length方法,该方法轮询页面是否存在外部加载的对象(我不能使用jQuery设置样式直到它存在):

function hackyFunction() {
  if($('#someObject').length<1)
  { setTimeout(hackyFunction,50) }
  else
  { $('#someObject').someMethod() }}

length是最好的方法吗?

5 个答案:

答案 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');
}