Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在setTimeout函数中返回选择器的结果?_Javascript_Return Value - Fatal编程技术网

Javascript 在setTimeout函数中返回选择器的结果?

Javascript 在setTimeout函数中返回选择器的结果?,javascript,return-value,Javascript,Return Value,这里是JS新手,抱歉提前问了个愚蠢的问题 我试图从一个select元素中收集所有选项,并将另一个select元素中的可用选项建立在第一个select元素中选择的任何选项的基础上。我在等待1秒后获得select元素的所有选项,因为这些选项是动态派生的,不能立即查询。问题是我不知道如何返回allnamepoptions,以便在下面的change函数中使用它。我尝试了return语句,但由于某种原因,它返回值3。不知道那是从哪里来的 当前代码: setTimeout(function () {

这里是JS新手,抱歉提前问了个愚蠢的问题


我试图从一个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);