Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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 使用jQuery时html select元素的长度错误_Javascript_Html_Jquery - Fatal编程技术网

Javascript 使用jQuery时html select元素的长度错误

Javascript 使用jQuery时html select元素的长度错误,javascript,html,jquery,Javascript,Html,Jquery,我有一个html选择元素,我有一个内置在谷歌应用程序脚本中的webapp。基本html呈现,然后使用jQuery和Javascript异步添加一长串选择项 我想遍历所有的选择选项,但只能读取最初呈现的原始选择项。换句话说,即使我可以在网页上看到我的1300个选项,选择的长度返回为1,因此我无法迭代 以下是我的初始html: 选择你的名字 然后,我生成一个html字符串并添加其他选项: $studentNameSelect.appendpayload[0] 到目前为止,这对我来说非常有效 现在,当

我有一个html选择元素,我有一个内置在谷歌应用程序脚本中的webapp。基本html呈现,然后使用jQuery和Javascript异步添加一长串选择项

我想遍历所有的选择选项,但只能读取最初呈现的原始选择项。换句话说,即使我可以在网页上看到我的1300个选项,选择的长度返回为1,因此我无法迭代

以下是我的初始html:

选择你的名字

然后,我生成一个html字符串并添加其他选项:

$studentNameSelect.appendpayload[0]

到目前为止,这对我来说非常有效

现在,当我尝试读取$studentNameSelect的长度时,即使我看到一个很长的列表,长度还是为1

警报$studentNameSelect.length

我遗漏了什么呢?

因为您选择的是select元素而不是选项

一种更方便资源的方法是存储对select元素的引用,而不是在文档中搜索两次。在小型网页上,它不会产生巨大的影响,但一旦HTML变得复杂,它就会产生影响。例如,请看以下内容:

//我们将select元素的jQuery表示存储在一个变量中,以便 //jQuery不必多次浏览整个文档。 const selectElement=$'studentNameSelect'; 函数代码{ 常量有效负载=[+Math.roundMath.random*1000+]; 选择Element.appendpayload[0]; //现在,我们可以只搜索select的子代,而不是 //让jQuery再次查看整个文档以找到新元素。 alertselectElement。查找“选项”。长度; }

单击我来模拟您的代码

因为您正在读取select元素的长度。。。。。不是它的选项$studentNameSelect选项。length@RyanWilson,谢谢你,谢谢你对我宽容@用户2420836无需担心。我希望你也能从其他人那里得到同样的待遇。1300个选项对于用户来说太多了,无法消费和浏览。您可能应该改用自动完成类型的小部件