如何选择下一个匹配元素?

这有效:

link1 link2 link3 $("a[href*='#/link1'").next('a[href*="#"]').click(); 

但这不是:

 link1
link2
link3
$("a[href*='#/link1'").next('a[href*="#"]').click();

以上测试“
”标签,而不是下一个匹配的链接。

我将如何在两种情况下使其工作。 我想选择下一个匹配元素,如果匹配则不是下一个元素。 也许.next()不是正确的方法?

第二个例子不应该选择任何东西。 阅读next的文档 :

获取匹配元素集中每个元素的紧随其后的兄弟 。 如果提供了选择器,则仅当它与该选择器匹配时,它才会检索下一个兄弟。

您必须使用nextAll来获取所有兄弟姐妹并相应地过滤它们:

 $("a[href*='#/link1']").nextAll('a[href*="#"]:first').click(); 

参考nextAll

使用.nextAll():first得到匹配的下一个兄弟,而不是匹配的下一个兄弟,如下所示:

 $("a[href*='#/link1'").nextAll('a[href*="#"]:first').click(); 

创建一个名为nextMatching的简单jQuery插件:

 $.fn.nextMatching = function(selector) { return this.nextAll(selector).first(); }; 

并使用它:给出以下标记…

 
  • one
  • two
  • three
  • four
  • five
  • six
  • …从元素一开始,你可以像这样选择元素五:

     $('#startingElement').nextMatching('#targetElement');