使用jQuery从单击的元素中获取最接近的输入值

yshpjwxd  于 2023-02-12  发布在  jQuery
关注(0)|答案(5)|浏览(189)

我有以下标记:

<div class="options">
  <div class="quantity">
     <label>Qty:</label>
     <input type="text" name="quantity" value="1"/>
  </div>
  <div class="buttons">
    <a href="#" class="add">Add Item</a>
  </div>
</div>

我有一个使用jQuery绑定到'add'类的click事件,当我单击它时,我希望得到name ="quantity"的值,但是有几个地方单击了'add',还有几个quantity字段。
我正在尝试获取"最接近"的输入值。我已经尝试使用"最接近"和"findall",但没有成功。
你知道我怎样用jQuery得到这个吗?谢谢!

vohkndzv

vohkndzv1#

$(".add").on("click", function () {
    var val = $(this).closest("div.options").find("input[name='quantity']").val();
});

这里的策略是:

  • 使用closest查找与给定选择器匹配的最接近的祖先(在本例中是类为optiondiv
  • 然后使用find查找input,其中给定的name使用attribute equals selector
  • 最后,使用val检索input的值。
sdnqo3pr

sdnqo3pr2#

您需要使用closest来找到正确的封闭元素,然后从那里开始工作。

$(link).closest(".options").find("input[name=quantity]")
jjhzyzn0

jjhzyzn03#

$(this).parent().parent().find("input[name=quantity]").val()

这个应该可以

o2rvlv0m

o2rvlv0m4#

我想最接近的作品只与相同的水平元素。所以..
为什么不把id放在输入字段中,然后按$('#input-id')进行选择呢?
或者遍历类选项并在其中查找输入:$(this).parents('.options:first').find('input');

mlmc2os5

mlmc2os55#

这个应该对你有帮助

$(".send-message").on("click", function () {
   var message=$(this).closest("div.options").find("input[name='message']").val();
alert(message);
});

相关问题