2014-09-26 57 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中进行搜索