2012-09-03 95 views
1

可能重複:
Check that element is in DOM or not with jQuery?確定是否元素存在

所以我有一個功能,即提供兩個級別與.parent().parent()瀏覽起來,然後將它移動到下一個節點中與.next()文件,並最終從嵌套的一個.find('a').attr('data-record-id')抓住我需要的屬性,這一切都很好,但現在我需要找到<a></a>元素是否存在,如果不是,我需要隱藏heade與它有關。佈局的實體模型是這樣的:

<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> 

所以考慮到佈局什麼,以確定是否<a></a>元素exitst,如果沒有,那麼隱藏的最好方法/ delte與它有關H4類。

+0

@MattBall這是正確的,但是在空的jQuery對象上調用多個方法時會有無限小的開銷,並且OP在DOM中不存在元素時似乎想要做某些事情,因此檢查有目的。 –

回答

2

$(selector).find('a')如果存在與否是返回一個數組,不管。您可以使用$(select).find('a').length (or .size())輕鬆測試。這有什麼幫助。

1

您可以使用length屬性來確定元素存在:

if ($(body).find('a[data-record-id]').length) { 
    // element exists 
} else { 
    // element does not exist 
} 
2

使用length

if($next.find('a').length > 0) 
+2

'> 0'是多餘的。 – 0x499602D2

+0

至少這幾乎解釋了'.length'檢查的工作原理。沒有元素== .length == 0 == falsy值。不等於0的整數評估爲真值。這使得'> 0'多餘。 –