这似乎已经被询问了十亿次,但是即使很简单,我也找不到具体如何做我想做的事:
<button></button>
<button></button>
<img />
基本上,我想单击任一按钮并让他们更新图像。使用以下代码:
$(this).next('img').attr("src","newimage.png");
下部按钮有效,而上部按钮无效。逻辑上似乎选择了“ next”元素,但是选择器却不合逻辑,因为否则顶部按钮将起作用,因为它会继续查找下一个为img元素的元素。
我尝试了其他方法,例如closest(),但这似乎并没有按照其名称说明的那样进行。
答案 0 :(得分:2)
问题是因为next()
仅查找以下同级。要解决此问题,您可以将nextAll()
与:first
一起使用来检索您需要的img
:
$('button').click(function() {
$(this).nextAll('img:first').attr("src", 'https://i.imgur.com/CaTFJ0z.png');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>A</button>
<button>B</button><br />
<img src="https://i.imgur.com/RGv7GmZ.png" />