3 回答
TA贡献1784条经验 获得超7个赞
似乎有些人正在这里登陆,只是想知道一个元素是否存在(与原始问题有点不同)。
这就像使用任何浏览器的选择方法一样简单,并检查它的真实值(通常)。
例如,如果我的元素有一个id
的"find-me"
,我可以简单地使用...
var elementExists = document.getElementById("find-me");
这被指定要么返回对元素的引用,要么返回null
。如果必须有布尔值,只需!!
在方法调用之前抛出一个。
此外,您可以使用其他许多方法来查找元素,例如(所有生活document
):
querySelector()
/querySelectorAll()
getElementsByClassName()
getElementsByName()
其中一些方法返回一个NodeList
,所以一定要检查它的length
属性,因为a NodeList
是一个对象,因此是真实的。
为了实际确定一个元素是否作为可见DOM的一部分存在(如最初提出的问题),Csuwldcat提供了一个比滚动自己更好的解决方案(如此答案所包含)。也就是说,contains()
在DOM元素上使用该方法。
你可以像这样使用它......
document.body.contains(someReferenceToADomElement);
TA贡献1828条经验 获得超4个赞
getElementById()
如果它可用,为什么不使用?
此外,这是使用jQuery执行此操作的简单方法:
if ($('#elementId').length > 0) { // exists.}
如果你不能使用第三方库,只需坚持基础JavaScript:
var element = document.getElementById('elementId');if (typeof(element) != 'undefined' && element != null){ // exists.}
TA贡献2080条经验 获得超4个赞
使用Node.contains DOM API,您可以非常轻松地检查页面中任何元素的存在(当前在DOM中):
document.body.contains(YOUR_ELEMENT_HERE);
交叉浏览器注意:document
IE中的对象没有contains()
方法 - 为确保跨浏览器兼容性,请document.body.contains()
改用
添加回答
举报