获取加载了 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; });

它会将这些值放入您随后可以访问的数组中。