Jquery,按类查找下一个元素

如何通过类查找下一个元素。

我试过使用 $(obj).next('.class');,但它只返回 $(obj)父类中的类。 我需要在整个代码中按类名任意取下一个元素。 因为我的代码看起来像

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

这可能吗?

302027 次浏览

在这个场景中不能使用 next () ,如果你看一下 Rel = “ norefrer”> document 文档,它会说:
Next ()获取匹配元素集中的 紧跟在每个元素的兄弟元素之后 < em > 。如果提供了选择器,它将检索与选择器匹配的下一个同级。

因此,如果第二个 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')

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

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

或者,如果中间可能有行,但内部没有 .class,则可以使用 .nextAll(),如下所示:

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

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

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

Given a first selector: 选择器 A, you can find the next match of 选择 B as below:

使用 mouseover 更改边框的示例-使用:

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

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

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

按标记名查找下一个元素

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