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

jQuery中如何获取独立div的最近类元素 点击按钮获取对应input值

问题原因

closest() 方法的查找逻辑是沿DOM树向上遍历当前元素的所有祖先节点,你要获取的<input>元素不是点击按钮的祖先节点,因此无法匹配到元素,返回空导致取值失败。

解决方案

你可以先通过点击按钮定位到二者共同的祖先容器.main-div,再在该容器内查找目标input即可,该写法同时兼容同页面存在多组相同结构的场景,只会匹配当前点击按钮所属区块内的元素,符合「最近」的取值需求。

修改后的完整代码如下:

JavaScript 代码

$(document).on("click", ".button", function() {
  // 定位当前按钮所属的主容器
  const $currentMain = $(this).closest(".main-div");
  // 获取 name="something" 的input值
  const somethingVal = $currentMain.find('input[name="something"]').val();
  // 获取 class="a-input" 的input值
  const aInputVal = $currentMain.find('input.a-input').val();

  // 以下为原有逻辑
  const div = `<div class="second-div"><input name="something"/></div>
         <div class="third-div"></div>`
  $(".main-div").append(div);
});

HTML代码(无需修改)

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main-div">
  <div class="second-div">
    <input name="something" class="input" />
  </div>
  <div class="third-div">
    <input name="another input" class="a-input" />
  </div>
  <div class="fourth-div">
    <button type="button" class="button">点击我</button>
  </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:06:03