HTML:
<li class="comment">
<div class="p_comm">
<div class="avatar"><img src="/img/1.jpg"></div>
<div class="c_auth">author<a class="del" title="delete it!" rel="19">x</a></div>
<div class="c_cont w">what ever</div>
<div class="c_time">12-23 13:22:15</div>
</div>
</li>
我想在本节中找到相对于<a>
的父li。我找不到这样做的功能。我试过prev(),parentsUntil()
他们都不能做到这一点。目前,我必须使用$(this).parent().parent().parent()
来覆盖<li>
。是否有直接查找父<li>
的功能?
答案 0 :(得分:10)
您可以使用closest()
。试试这个:
$(this).closest("li.comment");
答案 1 :(得分:3)
或者这个:
$(this).parents('li');
答案 2 :(得分:2)
var p = $('.del').parents('li');
console.log(p);
.parents()和.parent()方法类似,除了 后者只在DOM树上运行一个级别。
正如您所看到的,当您使用带选择器的父母时,您会没事的。
答案 3 :(得分:1)
你应该使用closest()
遍历DOM,直到找到你想要的元素:
$('a').closest('li');
如果你这样做是相反的(即你有li
并希望找到a
)你会使用:
$('li').find('a');
答案 4 :(得分:0)
.parent()
本身只是指节点的直接祖先,但你也可以这样做:
var li = $('a.del').parents('li.comment');
让JQuery返回DOM树,直到找到匹配的祖先节点。在这种情况下,li
将指向a
的{{1}}祖先。
编辑:忘记li
只上升一级,而.parent()
上升到整个树。但是,两者都接受选择器参数。
答案 5 :(得分:0)
$("a.del").click(function() {
alert($(this).closest("li").attr("class"))
})
答案 6 :(得分:0)
使用以下代码:
$(function(){
$("a").click(function(){
$(this).parents("li").hide();
})
})