我有一个按钮,在点击事件上,我需要设置下一个输入隐藏类型元素的值。我正在尝试下面的代码-
<span id="clear_promotion_brand_search" class="myButtonClass"><i class="fa fa-times"></i></span>
<span id="error_brand" class="show-error-msg"></span>
<input type="hidden" name="promotion_brand_id" value="" data-id="brand" class="search-id is-validate form-fields-value">
$(document).on('click','.myButtonClass',function(e){
console.log($(this).closest(".search-id").length); // returning 0
console.log($(this).next(".search-id").val()); // returning undefined
if($(this).next(".search-id").length){
var myval = $(this).next(".search-id").find('input[type=hidden]').val();
console.log('Val -'+myval);
}
});
我做错了什么?
4条答案
按热度按时间von4xj4u1#
您可以使用
nextUntil
和next
来获取所需的输入值,如下面的代码所示或者,您可以将
nextAll
与:first
选择器一起使用epfja78i2#
您的
.next()
元素实际上是HTML代码中的下一个元素,因此在本例中它是<span id="error_brand" class="show-error-msg"></span>
我修改了你的代码。
.find()
也排除当前元素。所以如果你在你想找的元素上运行这个,它不会找到它。我更新了你的片段一点,只是添加了一个真实的的按钮和一些内容。除此之外都一样。
vmpqdwk33#
使用siblings()代替
next()
。在工作代码下面运行-
hkmswyz64#
你可以使用$(this).next().next()函数来找到一个输入框。