Javascript 在setTimeout函数中返回选择器的结果?
这里是JS新手,抱歉提前问了个愚蠢的问题Javascript 在setTimeout函数中返回选择器的结果?,javascript,return-value,Javascript,Return Value,这里是JS新手,抱歉提前问了个愚蠢的问题 我试图从一个select元素中收集所有选项,并将另一个select元素中的可用选项建立在第一个select元素中选择的任何选项的基础上。我在等待1秒后获得select元素的所有选项,因为这些选项是动态派生的,不能立即查询。问题是我不知道如何返回allnamepoptions,以便在下面的change函数中使用它。我尝试了return语句,但由于某种原因,它返回值3。不知道那是从哪里来的 当前代码: setTimeout(function () {
我试图从一个select元素中收集所有选项,并将另一个select元素中的可用选项建立在第一个select元素中选择的任何选项的基础上。我在等待1秒后获得select元素的所有选项,因为这些选项是动态派生的,不能立即查询。问题是我不知道如何返回
allnamepoptions
,以便在下面的change
函数中使用它。我尝试了return语句,但由于某种原因,它返回值3
。不知道那是从哪里来的
当前代码:
setTimeout(function () {
var allNameOptions = $('#cipAreaNames option');
}, 1000);
$('#printStateAbbrev').change(function () {
$('#cipAreaNames option').remove()
var selState = $('#printStateAbbrev option:selected').prop('value');
var availOptions = allNameOptions.filter('.' + selState);
$.each(availOptions, function (i, j) {
$(j).appendTo('#cipAreaNames');
});
});
我尝试的内容(并在更改功能中将allNameOptions
编辑为names
):
您需要在函数外部、全局空间中声明
allNameOptions
变量,且不带值。就像var-allNameOptions代码>。接下来,您可以在一个函数中给它一个值,然后在另一个函数中使用它。您应该查看承诺
。从setTimeout()
处理程序返回任何值都是毫无意义的,因为没有任何东西会注意该值。“因为这些选项是动态派生的”-你能对此进行扩展吗?还是提供代码?在一个作用域中定义变量,还需要了解异步的含义。@Zenoo-我决定信守承诺。谢谢你的建议。
var names = setTimeout(function () {
var allNameOptions = $('#cipAreaNames option');
return allNameOptions;
}, 1000);