JQuery,找到父母

时间:2011-01-17 22:03:33

标签: jquery parent

<ul><li><div><div><span id="thisid"></span></div></div></li></ul>

$('#thisid').parent('li');

显然不起作用,但我如何抓住li元素?我不想用:

$('#this').parent().parent().parent();

我不想使用它,因为可能只有一个div元素而不是两个。在这种情况下,我会抓住ul元素而不是li元素。

7 个答案:

答案 0 :(得分:83)

$('#thisid').parents('li');
//                 ^ plural!

请注意,如果您只想要祖先中的第一个<li>元素,则应使用closest()

$('#thisid').closest('li');

// `closest()` is equivalent to (but performs better than)
$('#thisid').parents('li').eq(0);
$('#thisid').parents('li').first();

答案 1 :(得分:7)

$('#thisid').parents('li')

或者如果你只想要第一个:

$('#thisid').closest('li')

答案 2 :(得分:2)

简单,使用parents()

var parents = $("#thisid").parents('li');

答案 3 :(得分:2)

$('#thisid').parents( 'li:eq(0)' ); 

应该这样做。这将为您提供与您正在搜索的标记匹配的第一个(:eq(0))父级。

答案 4 :(得分:1)

$('li').has('#thisid')

http://api.jquery.com/has/

答案 5 :(得分:1)

我更喜欢'最接近'而不是'父母'。

父母将DOM树向上移动到文档的根元素,将每个祖先元素添加到临时集合中;然后,如果提供了一个选择器,它会根据选择器过滤该集合。

,其中

最近移动DOM树,直到找到所提供选择器的匹配项。

最重要的是他们在结果中提供的内容:

Praents:返回的jQuery对象包含原始集中每个元素的零个或多个元素,反向文档顺序。

最近:返回的jQuery对象包含原始集中每个元素的零个或一个元素,按文档顺序

$('#thisid').closest('li');

Follow this Link

答案 6 :(得分:0)

您实际上可能想要使用$("#thisid").closest('li')。这将从所选节点遍历DOM树并返回第一个匹配的祖先,而.parents()从父节点传播并返回与该过滤器匹配的所有祖先节点。有关详细信息,请参阅here