获取加载了 AJAX 的 select 的值
Get value of select loaded with AJAX
我正在通过 AJAX 加载 select,然后尝试将 select 的值用于另一个 AJAX 调用。
所以我有:
<select id ="thisSelect">
<option value = "someValue1"> Some Value 1 </option>
<option value = "someValue2"> Some Value 2 </option>
</select>
加载正常。然后我试图像这样访问 thisSelect 的值:
$(document).ready(function(){
var value = $('#thisSelect').val();
alert(value);
});
它仅注册 select 在原始 AJAX 调用中加载的第一个值,并且不捕获任何更改。
有什么想法吗?我试过了:
$('#thisSelect').on('change', function() {
var value = (this.value);
//or
alert(this.value);
});
在同一个 $(document).ready 块中,但 'value' 显示为未定义,我没有收到警告框。
听起来您的内容是在 on change
语句 运行 之后加载的。
改用委派的事件处理程序来进行更改:
$(document).on('change', '#thisSelect', function() {
var value = $(this).val();
alert(value);
});
这是通过监听事件冒泡到一个不变的祖先元素(如果没有更近的东西,则默认为文档)来工作的。然后它会在事件时间应用 jQuery 选择器,因此该项目只需要在那时匹配。
你可以试试
var array = [];
var i = 0;
$("#thisSelect").children().each(function () { array [i++] = $(this).val; });
它会将这些值放入您随后可以访问的数组中。
我正在通过 AJAX 加载 select,然后尝试将 select 的值用于另一个 AJAX 调用。
所以我有:
<select id ="thisSelect">
<option value = "someValue1"> Some Value 1 </option>
<option value = "someValue2"> Some Value 2 </option>
</select>
加载正常。然后我试图像这样访问 thisSelect 的值:
$(document).ready(function(){
var value = $('#thisSelect').val();
alert(value);
});
它仅注册 select 在原始 AJAX 调用中加载的第一个值,并且不捕获任何更改。
有什么想法吗?我试过了:
$('#thisSelect').on('change', function() {
var value = (this.value);
//or
alert(this.value);
});
在同一个 $(document).ready 块中,但 'value' 显示为未定义,我没有收到警告框。
听起来您的内容是在 on change
语句 运行 之后加载的。
改用委派的事件处理程序来进行更改:
$(document).on('change', '#thisSelect', function() {
var value = $(this).val();
alert(value);
});
这是通过监听事件冒泡到一个不变的祖先元素(如果没有更近的东西,则默认为文档)来工作的。然后它会在事件时间应用 jQuery 选择器,因此该项目只需要在那时匹配。
你可以试试
var array = [];
var i = 0;
$("#thisSelect").children().each(function () { array [i++] = $(this).val; });
它会将这些值放入您随后可以访问的数组中。