jQuery获取所选内容下方和选择器附近的最近元素

时间:2019-03-28 16:49:52

标签: jquery

这似乎已经被询问了十亿次,但是即使很简单,我也找不到具体如何做我想做的事:

<button></button>
<button></button>
<img />

基本上,我想单击任一按钮并让他们更新图像。使用以下代码:

$(this).next('img').attr("src","newimage.png");

下部按钮有效,而上部按钮无效。逻辑上似乎选择了“ next”元素,但是选择器却不合逻辑,因为否则顶部按钮将起作用,因为它会继续查找下一个为img元素的元素。

我尝试了其他方法,例如closest(),但这似乎并没有按照其名称说明的那样进行。

1 个答案:

答案 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" />