jQuery最接近排除self

时间:2013-03-26 03:30:24

标签: jquery

closest()将通过测试元素本身并遍历DOM树中的祖先来获得与选择器匹配的第一个元素。但我想知道是否有任何方法可以将结果排除在外(我的意思是得到它的父母)。

让我举个例子。请查看它。

<div id='div1' class="container">
    <div id="div2" class="container">
        <!--many nested div.container as it directly or indirectly children -->
    </div>
    <div id="div3" class="container">
        <!--many nested div.container as it directly or indirectly children -->
    </div>
</div>

$(function() {

    $('div.container').on('mouseover', function(e){
        //I only want to select the first parent with the class container.
        //closest include the this element. 
        console.log($(this).closest('.container').attr('id'));
    });
});

4 个答案:

答案 0 :(得分:86)

在尝试查找.closest()祖先之前,您可以遍历一个级别:

$(this).parent().closest('.container');

答案 1 :(得分:1)

正确的答案是.parents('.container:first');谢谢

答案 2 :(得分:0)

如果你真的只想要父div,那么是$(this).parents('。container')可以工作。如果你想寻找最接近的元素并允许它成为兄弟(它似乎可能是你实际想要完成的东西),你可以使用$(this).prev('。container')。

答案 3 :(得分:0)

香草js:

el.parentElement.closest('.container')