我正在使用两个下拉列表的组合(选择)。根据用户在第一个列表中的选择,第二个列表由
填充 $("#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没什么经验
答案 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
})