jquery,按类查找下一个元素

发布于 2024-09-18 10:32:30 字数 382 浏览 6 评论 0原文

我如何按类别找到下一个元素。

我尝试使用 $(obj).next('.class'); 但这仅返回 $(obj) 父级中的类。 我需要按类名在整个代码中的任何位置获取下一个元素。 因为我的代码看起来像

<table>
<tr><td><div class="class">First</div></td></tr>
<tr><td><div class="class">Second</div></td></tr>
</table>

这可能吗?

How can i find the next element by class.

i tried with $(obj).next('.class'); but this returns classes only in $(obj) parent.
I need to take the next element anywhere throughout the code by class name.
Because my code looks like

<table>
<tr><td><div class="class">First</div></td></tr>
<tr><td><div class="class">Second</div></td></tr>
</table>

Is this possible?

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

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

发布评论

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

评论(5

别靠近我心 2024-09-25 10:32:30

在这种情况下,您需要转到 then 使用 .next(),如下所示:

$(obj).closest('tr').next().find('.class');

或者,如果中间可能有一些行没有 .class ,您可以使用 .nextAll(),如下所示:

$(obj).closest('tr').nextAll(':has(.class):first').find('.class');

In this case you need to go up to the <tr> then use .next(), like this:

$(obj).closest('tr').next().find('.class');

Or if there may be rows in-between without the .class inside, you can use .nextAll(), like this:

$(obj).closest('tr').nextAll(':has(.class):first').find('.class');
°如果伤别离去 2024-09-25 10:32:30

要查找具有相同类的下一个元素:

$(".class").eq( $(".class").index( $(element) ) + 1 )

To find the next element with the same class:

$(".class").eq( $(".class").index( $(element) ) + 1 )
戴着白色围巾的女孩 2024-09-25 10:32:30

如果您查看文档 它说:

Next() 获取匹配元素集中每个元素的 紧随其后的同级元素 。如果提供了选择器,它将检索与选择器匹配的下一个同级。

因此,如果第二个 DIV 位于同一个 TD 中,那么您可以编写:


// Won't work in your case
$(obj).next().filter('.class');

But since it's not, I don't see a point to use next(). You can instead code:


$(obj).parents('table').find('.class')

You cannot use next() in this scenario, if you look at the documentation it says:

Next() Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling that matches the selector.

so if the second DIV was in the same TD then you could code:


// Won't work in your case
$(obj).next().filter('.class');


But since it's not, I don't see a point to use next(). You can instead code:


$(obj).parents('table').find('.class')

蓝海似她心 2024-09-25 10:32:30

给定第一个选择器:SelectorA,您可以找到 SelectorB 的下一个匹配项,如下所示:

鼠标悬停更改边框的示例:

$("SelectorA").on("mouseover", function() {
    var i = $(this).find("SelectorB")[0];
    $(i).css({"border" : "1px"});
    });
}

更改边框的一般使用示例:

var i = $("SelectorA").find("SelectorB")[0];
$(i).css({"border" : "1px"});

Given a first selector: SelectorA, you can find the next match of SelectorB as below:

Example with mouseover to change border-with:

$("SelectorA").on("mouseover", function() {
    var i = $(this).find("SelectorB")[0];
    $(i).css({"border" : "1px"});
    });
}

General use example to change border-with:

var i = $("SelectorA").find("SelectorB")[0];
$(i).css({"border" : "1px"});
裂开嘴轻声笑有多痛 2024-09-25 10:32:30

通过标签名称查找下一个元素

  function findNext(start, tag)
    {
      while(start.nodeName !== tag)
      {
            start = start.nextElementSibling;
      }
      return start;
    }

To find next element by tag name

  function findNext(start, tag)
    {
      while(start.nodeName !== tag)
      {
            start = start.nextElementSibling;
      }
      return start;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文