微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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>

解决方法

详细阐述上述意见:

你不能写:

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

你可以写:

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

原文地址:https://www.jb51.cc/jquery/183098.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐