在动态生成的选择(下拉列表)列表

时间:2016-06-26 19:22:09

标签: javascript jquery options dropdown

我正在使用两个下拉列表的组合(选择)。根据用户在第一个列表中的选择,第二个列表由

填充

$("#second-choice").load("textdata/" + $('#first-choice').val() + ".txt")致电。在网页的另一部分使用相同的列表组合,我保存用户作为索引的选择(第一个选项保存为0等)。然后我重新填充并通过nth-child(whatIhaveSaved)选择用户的选择。

然而,我无法做的是在第二个列表中进行此选择(即它确实加载列表数据,但不会选择任何内容,无论它读取的值如何)。可以做些什么呢?

我无法添加更多代码,因此实质上会发生什么以及我想要做的是:

 $("#first-choice").change(function() {
        $("#second-choice").load("textdata/" + $(this).val() + ".txt");
    });

我要保存的所有其他设置,通过使用:

运行良好
$('#first-choice option:nth('+ parseInt(savedPresets[0]) +')').attr("selected","selected");

例如,一旦应用此设置,第二个列表也会被填充。但是,对第二个列表的以下类似调用似乎被忽略了。

不幸的是,我对jQuery没什么经验

1 个答案:

答案 0 :(得分:0)

一个问题是load()是一个ajax方法,而ajax是异步的。

这意味着如果您想要与新的html进行交互,则必须在收到该html后触发的成功回调中进行此操作

$("#first-choice").change(function() {
      $("#second-choice").load("textdata/" + $(this).val() + ".txt", function(){    
       // new html exists can work with it here

      });

     // any code here will run before new html arrives
})