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

How to check DOM element is present or not in plain Javascript

任何想法如何检查Dom元素是否存在于使用id的普通javascript中

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

我尝试了类似if(document.getElementById('frameBox').length == 0)的东西,但它无法正常工作


您的代码不起作用,因为getElementById返回单个HTML元素,而不是具有length属性的数组的类似数组的集合,您可以获取该元素。

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

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

示例代码:

1
2
3
4
5
6
7
8
9
// 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) {
  //...
}

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

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


使用querySelectorAll:例如:

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

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