2012-04-22 83 views
0

可能重複:
jQuery: find all the parents up to a specific parent如何找到jQuery的父級?

我有以下:

<div class="modal-window block-border"> 
    <ul class="action-tabs right"> 
     <li><a title="Close window" href="#"><img width="16" height="16" src="images/icons/fugue/cross-circle.png"></a></li> 
    </ul> 
    <div class="block-content no-title"> 
     <div style="min-width: 200px; min-height: 40px; width: 300px; height: 221px;" class="modal-content modal-scroll"> 
      <h1>Admin</h1> 
      <div class="block-header"> 
       Please login 
      </div> 
      <form novalidate="novalidate" action="/MyAccount/Access/JsonLogin" data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-success="dialogSuccess()" data-ajax-update="#update-message" name="login-form" id="login-form" method="post"> 

我不得不形式的參考這是$(本)。鑑於此參考我怎樣才能找到一個稱爲「模態窗口」最頂級的div類的引用?

+1

hiya使用'.parent' api http://api.jquery.com/parent/希望這有助於:) cheerios! – 2012-04-22 08:53:05

+0

嘗試谷歌搜索'父母jquery'和你的第一擊會給你上面的鏈接。 – Cyclonecode 2012-04-22 08:55:19

+0

這也是**錯誤的方法**,因爲'.modal-window'元素不是'form'元素的直接父元素。 – 2012-04-22 09:04:19

回答

2

因爲你可能無法確定的目標元素究竟有多遠是從目前的元素,並假設你只想找到一個目標元素:

$(this).closest('.modal-window'); 
  • parent()選擇的$(this)所述速父元素,則返回一個,或沒有的jQuery對象。
  • parents()選擇全部匹配$(this)的祖先元素,返回一個,無或多個jQuery對象。
  • closest()選擇第一個元素與$(this)上方DOM樹中的選擇器匹配,返回一個jQuery對象或無。
1

您可以使用.parents()函數,並將它傳遞給一個選擇器以使其父母匹配,這意味着如果指定的選擇器被父母多次使用,它將返回所有匹配的父項。

$(this).parents('.modal-window'); 

http://api.jquery.com/parents/

+1

不; 'parents()'可以創建一個或一個或多個jQuery對象。它搜索DOM樹到'html'元素的所有路徑。您鏈接到API,您應該重新閱讀:「...(...並且在DOM樹上一直到''元素)。由於我們不提供選擇器表達式,所有的祖先是返回的jQuery對象的一部分,如果我們提供了一個,那麼只包含其中的匹配項。「 – 2012-04-22 09:14:20

+0

@DavidThomas更新&+1給你: -/ – sg3s 2012-04-22 09:18:26

+0

真的非常感謝! =) – 2012-04-22 09:20:12