jQuery触发器加载后选择选项



请有人帮我写代码好吗?我想在页面加载后更改select中的选项,因为表单是用DOM生成的。

我不知道为什么——;onClick"它起作用了吗:

$(window).load(function() { 
$( "#target" ).click(function() {
$("#filter_1 option[value=11]").attr('selected', 'selected').trigger('change');
}); 
});

但我想在不点击的情况下更改选择,这不起作用:

$(window).load(function() { 
$("#filter_1 option[value=11]").attr('selected', 'selected').trigger('change');
});

我做错了什么?

编辑-我发现所有的"选项";当我试图改变它们的时候,它们还没有出现。工作解决方案是:

$(function() {
function changeOption() {
$("#filter_1 option[value=11]").attr('selected', 'selected').trigger('change'); 
}
setTimeout(function(){
changeOption();
}, 500);
});

有比Timeout更好的解决方案吗?

您的代码中存在几个问题。

第一个$(window).load(func...已弃用。使用$(function(){...,它是$(document).ready(function的简写,而不是

接下来,<option>上没有更改事件,您需要在父<select>上触发它

最后,您可以通过设置父<select>的值来简化选项上的attr('selected')

$(function() {
// change event listener
$('#filter_1').change(function() {
console.log('Changed value to: ', this.value);
})
// set the value and trigger the change
$('#filter_1').val(11).change()
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="filter_1">
<option value=""> ---- </option>
<option value="10"> 10 </option>
<option value="11"> 11 </option>
<option value="12"> 12 </option>
</select>

最新更新