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

发布于 2024-09-09 04:52:49 字数 468 浏览 2 评论 0原文

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') 但在某些情况下会失败,因为这两个元素之间的元素数量可能会改变......

The HTML looks something like this:

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

...

how can I select the .content DIV, from within a jQuery function hooked on the link?
Note that I have multiple lists like this, and in some of them div.content might be missing, so I want to select this div only if it exists in the current block (li.divider).

I tried with $link.parent().parent().find('content') but it fails in some cases, because the number of elements between these 2 elements can change...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

水溶 2024-09-16 04:52:49

如果它们没有嵌套,您应该能够执行以下操作:

$('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 祖先。

If they're not nested, you should be able to do this:

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

or

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

If they are nested, then you may need to do something like this:

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

...so that if there's nesting going on, and there's no div.content in the current one, you won't end up selecting a more distant div.content ancestor.

美人骨 2024-09-16 04:52:49

$link.parent(".content")

$link.parent(".content")?

杯别 2024-09-16 04:52:49

使用 closest 选择器...

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

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

Use the closest selector...

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

if(parentContent.length > 0) {
  alert("DIV was found!");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文