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()更快,这取决于你的标记。