Javascript 是否更改在文档准备就绪时由ajax填充的select的选定值?

Javascript 是否更改在文档准备就绪时由ajax填充的select的选定值?,javascript,jquery,ajax,events,Javascript,Jquery,Ajax,Events,“我的文档”加载并使用URL中的变量(获取变量),并将元素的选定值更改为URL中指定的值 这很容易,因为当文档加载时,已填充,我只需要更改所选的值 第二个通过ajax填充第一个的数据(嵌套的类别),我可以在“文档加载”中填充它,但我不知道如何更改它的选定值 我知道这可能必须通过委托事件来完成,但我只通过单击事件等来完成 我尝试过的事情: 摘自jQuery文档网站: $( "#select-with-ajax-vals" ).on( "change", function( event ) {

“我的文档”加载并使用URL中的变量(获取变量),并将
元素的选定值更改为URL中指定的值

这很容易,因为当文档加载时,
已填充,我只需要更改所选的值

第二个
通过ajax填充第一个的数据(嵌套的类别),我可以在“文档加载”中填充它,但我不知道如何更改它的选定值

我知道这可能必须通过委托事件来完成,但我只通过单击事件等来完成

我尝试过的事情:

摘自jQuery文档网站:

$( "#select-with-ajax-vals" ).on( "change", function( event ) {
    console.log("hello"); //works
    $('#select-with-ajax-vals').val(value_from_the_url); //doesn't work but the same exact code pasted in the console works.
});

$(document).ready(function(){
    //populate the lists
    ....
    //lists populated etc
    $('#select-with-ajax-vals').trigger("change");
});

代码简化了,但你明白了。

正如你提到的,数据是通过ajax填充的。我认为发生的是,当您在文档加载时触发#select with ajax vals。数据尚未填充

您可能需要尝试以下代码:

$( document ).ajaxStop(function() {
    $( "#select-with-ajax-vals" ).on( "change", function( event ) {
        console.log("hello"); //works
        $('#select-with-ajax-vals').val(value_from_the_url); //doesn't work but the same exact code pasted in the console works.
    });

    $('#select-with-ajax-vals').trigger("change");
});

修复了将函数调用传递给.success ajax事件的问题