You need to enable JavaScript to run this app. jQuery siblings()方法无法作用于div内元素?点击按钮弹出undefined
优惠活动
大模型
产品
解决方案
定价
更多

jQuery siblings()方法无法作用于div内元素?点击按钮弹出undefined

问题核心原因
  • 现有取值逻辑无法匹配到目标输入框:代码中使用$(this).siblings('.name')、$(this).siblings('.adId')查找元素时,定位范围是和当前点击按钮同属一个直接父级的平级节点。但你的HTML结构中,.updateAdvertiser按钮的直接父元素是单独的.inputbox容器,这个容器内部只有按钮本身,不存在带.name、.adId类的输入框;这两类输入框是和按钮所在.inputbox平级的独立div,根本不是按钮的直接兄弟节点,因此取值时返回undefined。
修复方案

通过向上遍历DOM树锁定当前按钮所属的共同父容器,再在容器内部查找目标输入框,即可准确取值:

$('.updateAdvertiser').on('click', function() {
  // 从当前点击按钮出发,向上定位到最近的 .box 父容器,锁定当前按钮对应的整组输入
  const currentFormGroup = $(this).closest('.box');
  // 在当前组内查找对应输入框取值
  const name = currentFormGroup.find('.name').val();
  const adId = currentFormGroup.find('.adId').val();
  alert(adId);
});

方案说明

  • 相比逐层向上调用parent()方法遍历DOM,closest('.box')会从当前按钮本身开始向上匹配,直接锁定最近的指定祖先容器,不受后续.inputbox层级调整的影响。
  • 先锁定当前所属组、再查找内部元素的写法,可以完全避免多组表单场景下取错其他组输入值的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 22:27:00