2

考虑这个示例 html

<div class="A">
    <div class="B">
        <span class="C">Sample text</span>
        <div class="D">
            <div class="E">Clickable Text</div>
        </div>
    </div>
</div>

还有一些 jQuery

$(".E").click(function(){
    //body
});

$(this)获得匹配选择器的父级的最简单方法是什么?例如,在示例中说我需要获取 div where class="A"。目前因为我知道我可以做的 html 的结构

$(this).parent().parent();

但我正在寻找一种不管结构如何都可以工作的方法。类似的东西

$(this).findFirstParent(".A");

我希望我是可以理解的。

4

5 回答 5

4
$(".E").click(function(){
    console.log($(this).closest('.A'));
    /* console.log($(this).parents('.A')); works fine too */
});


http://api.jquery.com/closest/
http://api.jquery.com/parents/

请注意,这parent()与方法不同parents()(第一个仅查找一个祖先)

于 2012-05-03T11:59:55.340 回答
3

第一个解决方案:

$(this).closest('.A')

来源:http ://api.jquery.com/closest/ 这将在遍历匹配选择器时返回第一个父级。

第二种解决方案:

$(this).parents('.A:first')

来源:http ://api.jquery.com/parents/ 这将返回所有匹配选择器的父母

于 2012-05-03T12:00:21.753 回答
2

关于什么

$(this).closest(".A");
于 2012-05-03T12:00:26.777 回答
1

这就是我会做的方式

$(this).parents("div.A")
于 2012-05-03T12:13:08.373 回答
0

jQuery 父选择器可能会帮助您。您可以将它与您正在寻找的课程相结合。请参阅文档@ http://api.jquery.com/parent-selector/

于 2012-05-03T12:03:54.267 回答