查找最近的<i>元素</i>的类

时间:2013-08-27 11:14:30

标签: jquery

在以下标记中,我想找到最接近i的类。我正在尝试遵循jQuery,但它不起作用。

HTML:

<div id="item1" class="item">
    <div class="text"><i class="class1"></i></div>
    <div class="edit">Change</div>
</div>

jQuery的:

$('.edit').click(function(e){ 
      var closest = $(this).closest('i').attr('class');
     alert(closest);    
});

演示:

http://jsfiddle.net/BRnes/

6 个答案:

答案 0 :(得分:4)

closest()只会选择相同的节点和父节点。你需要siblings().children('i')

http://jsfiddle.net/BRnes/3/

有关树遍历的详细信息,请参阅jQuery doc

答案 1 :(得分:2)

var closest = $(this).prev().children('i').attr('class');

Demo

答案 2 :(得分:1)

.closest()找到最亲近的父母,因为在您考虑.siblings.find('i')而不是

后,这似乎不是您的目标

答案 3 :(得分:1)

$('.edit').click(function(e){ 
      var closest = $(this).prev('.text').find('i').attr('class');
     alert(closest);    
}); 

<强> DEMO

答案 4 :(得分:1)

http://jsfiddle.net/Aveendra/BRnes/2/

$('.edit').click(function(){ 
      var closest = $('.text').find('i').attr('class');
     alert(closest);    
}); 

答案 5 :(得分:1)

closest只会找到父元素。如果i始终位于.text元素下,您可以执行以下操作:

$(this).prev(".text").find("i");

这将找到之前的.text元素,然后是其下的所有i元素。