gpt4 book ai didi

jquery - 在 jQuery 中获取下一个兄弟的最简洁的方法

转载 作者:行者123 更新时间:2023-12-03 21:29:11 24 4
gpt4 key购买 nike

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

经过对 next('a') 等的相当多的测试,我终于找到了一个有效的。我只是想知道为什么 next('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>元素并且不匹配任何内容。

  • closest("a") ,因为closest()从元素本身开始沿着祖先链向上走,因此会错过 <a>元素。

可以写:

  • next().next()正如阿伦德所建议的那样。这可能是最快的解决方案,但它使得<br>强制元素。

  • nextAll("a") ,但这可以返回多个元素(并且将使用您的标记示例执行此操作)。链接到 first()会阻止它,但是 nextAll()仍然需要迭代所有下一个兄弟,这可能会使速度变慢,具体取决于 <div> 内标记的复杂性。元素。

  • nextUntil("a").last().next() ,它仅迭代下一个同级元素,直到找到链接,然后返回最后一个匹配元素的下一个同级元素。它可能nextAll() 更快再次,取决于您的标记。

关于jquery - 在 jQuery 中获取下一个兄弟的最简洁的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com