在jQuery中获得下一个兄弟的最干净的方法

http://jsfiddle.net/mplungjan/H9Raz/

经过下一次(’a’)等测试后,我终于找到了一个有效的测试。 我只是想知道为什么下一个(’a’)没有,或者最接近或类似。 在我单击的复选框后,是否有更简洁的方法来获取链接的href?

$('form input:checkbox').click(function () { alert($(this).nextAll('a').attr("href")); }); 
 
Check here
click here
Check here
click here

详细说明上述评论:

不能写:

  • next("a") ,因为next()仅尝试匹配下一个元素。 它将击中
    元素并且不匹配。

  • closest("a") ,因为nearest()从元素本身开始走向祖先链,因此将错过元素。

可以写:

  • Arend建议, next().next() 。 这可能是最快的解决方案,但它使得
    元素成为强制性的。

  • nextAll("a") ,但可以返回多个元素(并且将使用您的标记示例)。 链接到first()会阻止它,但nextAll()仍然必须迭代所有下一个兄弟,这可能会使它变慢,这取决于你的

    元素内的标记的复杂性。

  • nextUntil("a").last().next() ,它只迭代下一个兄弟,直到找到一个链接,然后返回匹配的最后一个元素的直接下一个兄弟。 它可能nextAll()更快,这取决于你的标记。

或者,您可以使用jQuery内置函数.siblings()

https://api.jquery.com/siblings/

下面的代码对我有用

$(’#id~iframe’);