Jquery按选择器获取所选和下面最近的元素

Jquery按选择器获取所选和下面最近的元素,jquery,Jquery,这似乎被问了十亿次,但我找不到如何具体做我想做的事情,尽管这很简单: <button></button> <button></button> <img /> 下部按钮工作,但上部按钮不工作。从逻辑上看,它似乎在选择“下一个”元素,但从逻辑上讲,它不是通过选择器来选择的,因为否则顶部按钮将起作用,因为它将继续查找下一个元素,即img元素 我尝试了其他的东西,比如nextest(),但它的名字也表明了这一点。问题是因为next()只查找以

这似乎被问了十亿次,但我找不到如何具体做我想做的事情,尽管这很简单:

<button></button>
<button></button>
<img />
下部按钮工作,但上部按钮不工作。从逻辑上看,它似乎在选择“下一个”元素,但从逻辑上讲,它不是通过选择器来选择的,因为否则顶部按钮将起作用,因为它将继续查找下一个元素,即img元素


我尝试了其他的东西,比如nextest(),但它的名字也表明了这一点。

问题是因为
next()
只查找以下兄弟姐妹。要解决此问题,您可以使用
nextAll()
:first
来检索所需的
img

$(“按钮”)。单击(函数(){
$(this).nextAll('img:first').attr(“src”,'https://i.imgur.com/CaTFJ0z.png');
});

A.
B

问题是因为
next()
只查找以下兄弟姐妹。要解决此问题,您可以使用
nextAll()
:first
来检索所需的
img

$(“按钮”)。单击(函数(){
$(this).nextAll('img:first').attr(“src”,'https://i.imgur.com/CaTFJ0z.png');
});

A.
B

发布代码中的
没有上下文。。。请添加完整的代码。
nextAll('img')。eq(0)
将获得按钮后面的所有图像,并抓取第一个图像。看起来像是兄弟姐妹,所以像
$(this)那样做。兄弟姐妹('img')…
@Taplar Yes这与下面的答案一样有效。我真的很惊讶没有通过选择器获取下一个相邻元素的函数。我认为默认情况下,基本的next()应该这样做。发布代码中的
this
没有上下文。。。请添加完整的代码。
nextAll('img')。eq(0)
将获得按钮后面的所有图像,并抓取第一个图像。看起来像是兄弟姐妹,所以像
$(this)那样做。兄弟姐妹('img')…
@Taplar Yes这与下面的答案一样有效。我真的很惊讶没有通过选择器获取下一个相邻元素的函数。我认为默认情况下,基本的next()应该可以做到这一点。这段代码确实有效。所以真的没有真正的“最近”函数吗?奇怪的是,你不得不做这种奇怪的变通方法,只是为了让类似的东西发挥作用。这不是一种真正的变通方法,只是它的工作方式。DOM是一个树结构,“最近的”是一个非常相对的术语。有很多遍历方法可以向上、向下和横向遍历,但是没有明确地说“向横向遍历,但忽略X节点”,这就是为什么需要执行我上面提到的操作。是的,我只是假设next()可以使用选择器,但我想它不能,它只获取下一个,没有指定选项。这段代码确实有效。所以真的没有真正的“最近”函数吗?奇怪的是,你不得不做这种奇怪的变通方法,只是为了让类似的东西发挥作用。这不是一种真正的变通方法,只是它的工作方式。DOM是一个树结构,“最近的”是一个非常相对的术语。有很多遍历方法可以向上、向下和横向遍历,但是没有明确地说“向横向遍历,但忽略X节点”,这就是为什么需要执行我上面提到的操作。是的,我只是假设next()可以使用选择器,但我想它不能,它只获取下一个,没有指定选项。
$(this).next('img').attr("src","newimage.png");