如何在普通的Javascript中检查DOM元素是否存在

时间:2018-02-23 03:13:16

标签: javascript

任何想法如何检查Dom元素是否存在于使用id

的普通javascript中

我正在搜索堆栈溢出和一些讨论,但每个答案都指向 jquery if($('#frameBox').length == 0) { .... }

我尝试了类似if(document.getElementById('frameBox').length == 0)的内容,但它无效

3 个答案:

答案 0 :(得分:4)

您的代码无法正常工作,因为getElementById会返回单个HTML元素,而不是具有length属性的类似数组的元素集合,您可以获取它。

此外,请注意,由于您尝试通过其ID获取元素,因此无论如何您最终都会返回一个元素,或者null,如果有&#39 ; s没有匹配给定id的元素。

对于多个分组元素,请尝试使用类和getElementsByClassNamequerySelectorAll。然后,您可以使用length

示例代码:

// Check if an element with id 'frameBox' exists.
if (document.getElementById("frameBox")) {
  //...
}

// Check if there are any elements with class 'frameBox'.
if (document.getElementsByClassName("frameBox").length) {
  //...
}

答案 1 :(得分:0)

使用querySelectorAll:例如:

var elements = document.querySelectorAll("#frameBox");
console.log(elements.length);

虽然,你不应该在多个元素上使用相同的id,这是什么类。

答案 2 :(得分:0)

元素的

id 应该是唯一的。因此 document.getElementById 只会返回一个元素。

您可以使用代替 id 。 document.getElementsByClassName返回与该类匹配的所有元素。