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
多余。