jquery遍历以查找父级的父级

HTML:

  • authorx
    what ever
    12-23 13:22:15
  • 我想找到相对于本节中的父li。 我找不到这样做的function。 我试过prev(),parentsUntil()没有人能做到这一点。 目前我必须使用$(this).parent().parent().parent()来达到

  • 。 是否有直接查找父
  • 的function?

    或这个:

     $(this).parents('li'); 

    你可以使用closest() 。 试试这个:

     $(this).closest("li.comment"); 
     var p = $('.del').parents('li'); console.log(p); 

    http://jsfiddle.net/hZY8R/

    .parents()和.parent()方法类似,只是后者只在DOM树上运行一个级别。

    正如您所看到的,当您使用带选择器的父母时,您会没事的。

    你应该使用closest()来遍历DOM,直到它找到你所追求的元素:

     $('a').closest('li'); 

    如果你是这样做的另一种方式(即你有li并想找到a )你会使用:

     $('li').find('a'); 
     $("a.del").click(function() { alert($(this).closest("li").attr("class")) }) 

    .parent()本身只是指节点的直接祖先,但你也可以这样做:

     var li = $('a.del').parents('li.comment'); 

    让JQuery返回DOM树,直到找到匹配的祖先节点。 在这种情况下, li将指向ali祖先。


    编辑:忘了.parent()只上升一级,而.parents()上升到整个树。 但是,两者都接受选择器参数。

    使用以下代码:

     $(function(){ $("a").click(function(){ $(this).parents("li").hide(); }) }) 

    http://jsfiddle.net/4yCux/1/