获取壁橱select2 jquery的值
我正在尝试获取获取壁橱select2 jquery的值,jquery,jquery-select2,Jquery,Jquery Select2,我正在尝试获取最接近的值()从单击保存按钮的位置选择2个值。保存条目 我正在尝试使用$(this.closest('select').val()获取select的值但它将返回未定义。我尝试了许多变体,但由于select2生成其他HTML,因此在尝试获取该值时似乎存在问题。我在页面上有多个选择,所以我必须使用一个类 如何获取最近选择的值 <div class="input-group"> <select class="form-control select2custom"
最接近的值()
从单击保存按钮的位置选择2个值。保存条目
我正在尝试使用$(this.closest('select').val()获取select的值代码>但它将返回未定义。我尝试了许多变体,但由于select2
生成其他HTML,因此在尝试获取该值时似乎存在问题。我在页面上有多个选择,所以我必须使用一个类
如何获取最近选择的值
<div class="input-group">
<select class="form-control select2custom" style="width: 100%">'+data+'</select>
<span class="input-group-btn">
<button class="btn btn-primary btn-sm save_entry" type="button" data-id="'+row_id+'">
<i class="fas fa-check"></i>
</button>
</span>
</div>
closest()
只搜索元素的父元素。选择元素不是按钮的父元素。找到div,然后找到子select
给定标记,一种可能的方法是找到最近的输入组,然后找到嵌套的select2custom元素,即select
$(this).closest('.input-group').find('.select2custom')
Taplar的答案很好,您也可以用输入组
类替换delegateTarget
(这里是文档
),以更轻松地找到选择符
$('.input group')。在('click','save_entry',函数(e){
console.log($(e.delegateTarget).find('select').length)
})
“+数据+”
点击我
这很正常,它不是的父项。save_entry
(或其本身)而是一个“兄弟”,您必须使用prev()
而不是closest()
刚刚发现var new_value=$(this.parent().parent().find('select').val()代码>获取值。有更好的方法吗?@GameTag它不是兄弟。它是父元素的同级。@Taplar是的,我没有看到包装器。您也可以使用$(this.parent().sibles('select').val()代码>当然可以,但是这稍微依赖于现有的dom结构。在类中使用“最近”和“查找”只会将标记限制为某种形式的父子关系。这些元素可以四处移动,并且仍然有效@Rohit.007是的,但是CSS类的改变会阻止它。当然,这两种方法都有不同程度的脆弱性。但所有代码都是这样@Rohit.007
$(this).closest('.input-group').find('.select2custom')