任何想法如何检查Dom元素是否存在于使用id
的普通javascript中我正在搜索堆栈溢出和一些讨论,但每个答案都指向 jquery if($('#frameBox').length == 0) { .... }
我尝试了类似if(document.getElementById('frameBox').length == 0)
的内容,但它无效
答案 0 :(得分:4)
您的代码无法正常工作,因为getElementById
会返回单个HTML元素,而不是具有length
属性的类似数组的元素集合,您可以获取它。
此外,请注意,由于您尝试通过其ID获取元素,因此无论如何您最终都会返回一个元素,或者null
,如果有&#39 ; s没有匹配给定id的元素。
对于多个分组元素,请尝试使用类和getElementsByClassName
或querySelectorAll
。然后,您可以使用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返回与该类匹配的所有元素。