jQuery - 从上面找到具有特定类的第一个元素,但不是在另一个元素之前

时间:2010-07-09 19:53:55

标签: jquery jquery-selectors

HTML看起来像这样:

<li class="divider">
  <div>
    ...(maybe more divs)...      
      <div class="content">
         ...(maybe more divs)...
         <a href="#" class="link">LINK</a>

...

如何在链接上挂钩的jQuery函数中选择.content DIV? 请注意,我有这样的多个列表,并且在其中一些列表中可能缺少div.content,所以我只想在当前块(li.divider)中存在时选择此div。

我尝试使用$link.parent().parent().find('content'),但在某些情况下失败,因为这两个元素之间的元素数量可能会发生变化......

3 个答案:

答案 0 :(得分:5)

如果它们没有嵌套,你应该可以这样做:

$('a.link').click(function() {
    $(this).closest('div.content');
});

$('a.link').click(function() {
    $(this).parents('div.content:first');
});

如果它们是嵌套的,那么您可能需要执行以下操作:

$('a.link').click(function() {
    $(this).closest('li.divider').find('div.content');
});

...因此,如果正在进行嵌套,并且当前没有嵌套div.content,那么您最终不会选择更远的div.content祖先。

答案 1 :(得分:0)

$link.parent(".content")

答案 2 :(得分:0)

使用closest选择器...

var parentContent = $(this).closest("div.content");

if(parentContent.length > 0) {
  alert("DIV was found!");
}