2014-09-26 31 views
0

我有以下html結構爲例。通過類使用jquery獲取父元素

<div class="message" data-id="4"> 
     <div> 
      <div class="msg-button"> 
       <span class="sms"></span> 
      </div> 
      <div> 
       <div> 
        <div> 
         <span class="sms"></span> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 

當我點擊與sms類元素我需要得到元素的數據-id屬性與message類。

我用jquery做了什麼。它不適合我。我怎樣才能獲得父級元素的類? 在此先感謝!

$('.sms').click(function(){ 
    var id = $(this).parent('.msg-button').siblings('.message').data("id"); 
    alert(id); 
}) 
+1

[closest()](http://api.jquery.com/closest/) - '$(this).closest('。message')。data(「 id「);' – 2014-09-26 13:11:05

回答

4

您需要使用.closest().parent()只搜索父節點,因爲你正在尋找一個匹配的祖先元素使用.closest()

$('.sms').click(function() { 
 
    var id = $(this).closest('.message').data("id"); 
 
    alert(id); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="message" data-id="4"> 
 
    <div> 
 
    <div class="msg-button"> 
 
     <span class="sms"></span> 
 
    </div> 
 
    <div> 
 
     <div> 
 
     <div> 
 
      <span class="sms">sms</span> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+1

@lalexa查看更新的演示 – 2014-09-26 13:43:30

+0

感謝它的工作,但我有另一個問題,如果我的跨度不是父類的子類的消息,我應該使用什麼,而不是最接近的方法。欲瞭解更多信息,我會提供這個小提琴:http://jsfiddle.net/g2Rxc/93/ – lalexa 2014-09-26 13:57:11

+0

@lalexa請參閱http://jsfiddle.net/arunpjohny/g2Rxc/94/ – 2014-09-26 14:10:58

1

使用closest()找到層次結構中的祖先與指定選擇

$('.sms').click(function(){ 
    var id = $(this).closest('.message').data("id"); 
    alert(id); 
}); 
0

。家長(選擇器) ParentS將在DOM中進行搜索