You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery中如何选取匹配指定选择器的元素之后的目标类型元素

问题解决代码与说明

原代码错误原因

  • closest() 是向上遍历祖先元素的方法,你的img嵌套在.image_box内,祖先节点不存在.label_box,因此无法匹配到目标
  • nextAll() 仅查找同层级的后续兄弟节点,img的同层级没有对应input元素,因此匹配失效

正确实现代码

$("img[src$='sunglasses.jpg']").each(function() {
  // 先找到当前img所属的.image_box容器
  // 再查找该容器后续所有兄弟节点中的.label_box
  // 最后筛选出里面name以happy_开头的input,设置值为1
  $(this).closest('.image_box').nextAll('.label_box').find("input[name^='happy_']").prop('value', '1');
  
  // 如果只需要匹配第一个后续的对应input,加eq(0)即可:
  // $(this).closest('.image_box').nextAll('.label_box').eq(0).find("input[name^='happy_']").prop('value', '1');
});

逻辑说明

按照你给出的HTML结构,img的父容器.image_box和存放input的.label_box是同级兄弟节点,因此先向上找到img所属的.image_box,再遍历该容器的后续兄弟节点,就能准确命中对应的input元素。

内容的提问来源于stack exchange,提问作者Rob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:42:01