如何选择下一个匹配元素?
这有效:
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');