javascript - 在 setTimeout 函数中返回选择器的结果?
问题描述
JS新手在这里,很抱歉提前提出愚蠢的问题。
我正在尝试从一个选择元素中收集所有选项,并将另一个选择元素中的可用选项基于在第一个选择元素中选择的任何内容。等待 1 秒后,我得到了 select 元素的所有选项,因为这些选项是动态派生的,不能立即查询。问题是我不知道如何返回allNameOptions
,以便可以在以下change
函数中使用它。我尝试了一个 return 语句,但由于某种原因,它返回了 value 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
:
var names = setTimeout(function () {
var allNameOptions = $('#cipAreaNames option');
return allNameOptions;
}, 1000);
解决方案
您需要allNameOptions
在函数之外,在全局空间中声明变量,没有值。就像刚刚一样var allNameOptions;
。接下来,您可以在一个函数中给它一个值并在另一个函数中使用它。
推荐阅读
- python - 在 main 中使用多个变量——While 循环不会停止
- python - 如何使用python在vscode中导入PySimpleGUI
- c# - 从 .Net Core 3.1 迁移到 .NET 5
- python - 如何让用户在 django 中拥有他们的数据
- java - 如何制作像 Instagram 一样的滑动对话框?
- spring-boot - AbstractCouchbaseDataConfiguration.class 无法打开,因为它不存在
- windows-subsystem-for-linux - 如何重新安装 WSL?无济于事总是同样的错误
- sql - 使用 YYYY-MM-DDtHH-MM-SS (BigQuery) 从 SQL 表中获取最近 30 天
- c# - HttpResponseMessage 不获取非 ascii 字母
- r - 如何使用 tidyverse 根据某些条件添加新列?