Javascript 确定元素是否存在
可能重复:Javascript 确定元素是否存在,javascript,jquery,html,jquery-mobile,Javascript,Jquery,Html,Jquery Mobile,可能重复: 因此我有一个函数,它可以使用.parent().parent()向上导航两个级别,然后使用.next()移动到文档中的下一个节点,最后从嵌套的a中获取所需的属性,使用.find('a').attr('data-record-id'),这一切都很好,但是现在我需要找到元素是否存在,如果不存在,我需要隐藏与其相关的标题。布局模型如下所示: <html> <head><title>My Title</title></head&
因此我有一个函数,它可以使用
.parent().parent()
向上导航两个级别,然后使用.next()
移动到文档中的下一个节点,最后从嵌套的a中获取所需的属性,使用.find('a').attr('data-record-id')
,这一切都很好,但是现在我需要找到
元素是否存在,如果不存在,我需要隐藏与其相关的标题。布局模型如下所示:
<html>
<head><title>My Title</title></head>
<body>
<h4 class="dragable">2012-08-20<span style='display: none'><a class='delete-btn'></a></span></h4>
<ul>
<li>
<div>
<div>
<a data-record-id="9">97 bpm</a>
</div>
</div>
</li>
</ul>
</body>
</html>
我的头衔
2012-08-20
-
97 bpm
因此,给定该布局,确定
元素是否存在的最佳方法是什么?如果不存在,则隐藏/删除与其相关的h4类。您可以使用length
属性来确定元素是否存在:
if ($(body).find('a[data-record-id]').length) {
// element exists
} else {
// element does not exist
}
您可以使用
length
属性来确定元素是否存在:
if ($(body).find('a[data-record-id]').length) {
// element exists
} else {
// element does not exist
}
使用
length
if($next.find('a').length > 0)
使用
length
if($next.find('a').length > 0)
$(选择器).find('a')
将返回一个数组,无论a是否存在。您可以轻松地使用$(选择).find('a').length(或.size())
进行测试。这有什么帮助。$(选择器)。find('a')
将返回一个数组,无论是否存在。您可以轻松地使用$(选择).find('a').length(或.size())
进行测试。这是多么有帮助。@MattBall这是正确的,但是在一个空jQuery对象上调用多个方法的开销非常小,OP似乎想在DOM中不存在元素时做些什么,因此检查是有目的的。@MattBall这是正确的,然而,在一个空jQuery对象上调用多个方法的开销非常小,OP似乎想在DOM中不存在元素时做些什么,因此检查是有目的的。至少这几乎可以解释.length
检查的工作原理。没有元素==。长度==0==falsy值。不同于0的整数计算为真实值。这使得>0
多余。至少这几乎可以解释.length
检查的工作原理。没有元素==。长度==0==falsy值。不同于0的整数计算为真实值。这使得>0
多余。