在jQuery中获得下一个兄弟姐妹的最干净的方式

前端之家收集整理的这篇文章主要介绍了在jQuery中获得下一个兄弟姐妹的最干净的方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
http://jsfiddle.net/mplungjan/H9Raz/

经过相当多的测试与下一个(‘a’)等等,我终于找到一个工作。
我只是想知道为什么下一个(‘a’)没有,或最接近或相似。点击复选框后,是否有更清洁的方法获取链接的href?

$('form input:checkBox').click(function () {
 alert($(this).nextAll('a').attr("href"));
});
<form>
  <div>
    <input type="checkBox" name="checkThis" value="http://www.google.com" />Check here<br/>
    <a href="http://www.google.com">click here</a><br>   
    <input type="checkBox" name="checkThis" value="http://www.bing.com" />Check here<br/>
    <a href="http://www.bing.com">click here</a>       
  </div>
</form>

解决方法

@H_403_12@ 详细阐述上述意见:

你不能写:

> next(“a”),因为next()只尝试匹配下一个元素。它将击中< br>元素匹配无。
> near(“a”),因为closest()从元素本身开始爬上祖先链,因此将错过< a>元素。

你可以写:

> next()。next(),正如Arend所说。这可能是最快的解决方案,但它使得< br>元素强制
> nextAll(“a”),但它可以返回多个元素(并将使用您的标记示例)。链接first()会阻止它,但nextAll()仍然需要遍历所有下一个兄弟姐妹,这可能会使您的缓慢,取决于您< div>内的标记的复杂性。元素。> nextUntil(“a”)。last()。next(),它只会遍历下一个兄弟姐妹,直到找到一个链接,然后返回匹配的最后一个元素的即时下一个兄弟。它可能比nextAll()更快,这取决于你的标记

原文链接:https://www.f2er.com/jquery/183098.html

猜你在找的jQuery相关文章