jquery - 如何在jQuery中设置下一个元素值
问题描述
我有一个按钮,在单击事件上我需要设置下一个输入隐藏类型元素的值。我正在尝试下面的代码 -
<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);
}
});
我究竟做错了什么?
解决方案
您可以使用nextUntil
andnext
来获取所需的输入值,如下面的代码所示
$(function(){
$(document).on('click','.myButtonClass',function(e){
var input = $(this).nextUntil(".search-id").next();
console.log(input.length);
console.log("value = " + $(input).val());
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span id="clear_promotion_brand_search" class="myButtonClass">Button<i class="fa fa-times"></i></span>
<span id="error_brand" class="show-error-msg">Error</span>
<input type="hidden" name="promotion_brand_id" value="Test Value" data-id="brand" class="search-id is-validate form-fields-value">
或者您可以nextAll
与:first
选择器一起使用
$(function(){
$(document).on('click','.myButtonClass',function(e){
var input = $(this).nextAll(".search-id:first");
console.log(input.length);
console.log("value = " + $(input).val());
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span id="clear_promotion_brand_search" class="myButtonClass">Button<i class="fa fa-times"></i></span>
<span id="error_brand" class="show-error-msg">Error</span>
<input type="hidden" name="promotion_brand_id" value="Test Value" data-id="brand" class="search-id is-validate form-fields-value">
推荐阅读
- python-3.x - pandas dataframe [ ] 列中项目列表的宽到长格式
- excel - Excel:修剪两个指定短语之间的文本
- php - 将数据插入数据库 Drupal 8
- python - 用于注册多个 SSO 身份提供者的 Python/Django 库(OpenID Connect)
- python - 没有休息框架的django令牌认证
- java - JDK 11 上的 RabbitMQ 客户端 SSL 握手问题
- node.js - 具有动态参数数量的NodeJS递归
- java - spring boot 反馈邮件发送器中如何解决这个 NumberFormatException
- windows - “for”和“move”命令在哪里?
- java - 如何在控制器中传递多个参数?