当尝试不使用 getElementById 验证元素存在时,它很明显,变量并不维护对 DOM 元素的实时引用,而是保留它们的初始值。在从 DOM 中删除元素后检查元素是否存在时,这可能会导致意外结果。
要解决此问题,请考虑使用 isNull 函数,该函数尝试确定元素的存在:
<code class="javascript">var isNull = function (element) { var randomID = getRandomID(12), savedID = (element.id) ? element.id : null; element.id = randomID; var foundElm = document.getElementById(randomID); element.removeAttribute('id'); if (savedID !== null) { element.id = savedID; } return (foundElm) ? false : true; };</code>
此方法有效,但建议使用更简单的方法。
确定元素是否存在于可见 DOM,使用 contains() 方法:
<code class="javascript">document.body.contains(someReferenceToADomElement);</code>
此方法返回一个布尔值,指示该元素是否是 DOM 的一部分。与 isNull 函数相比,它提供了一种更直接、更有效的方法来检查存在性。
以上是如何在不使用 getElementById 的情况下高效检查可见 DOM 中元素是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!