Javascript 选择元素的选项为空
我有一个select2元素中的产品列表。它显示如下:Javascript 选择元素的选项为空,javascript,html,jquery-select2,Javascript,Html,Jquery Select2,我有一个select2元素中的产品列表。它显示如下: <select name="product" class="select2 form-control select2-hidden-accessible"> <option value="138" data-select2-id="60">Option1</option> <opti
<select name="product" class="select2 form-control select2-hidden-accessible">
<option value="138" data-select2-id="60">Option1</option>
<option value="39" data-select2-id="78">Option2</option>
// several more options here
</select>
for (let i = 0; i < select.options.length; i++) {
console.log(select.options[i]);
}
选择1
选择2
//这里还有几个选项
尽管这看起来是正确的,但当我重复以下选项时:
<select name="product" class="select2 form-control select2-hidden-accessible">
<option value="138" data-select2-id="60">Option1</option>
<option value="39" data-select2-id="78">Option2</option>
// several more options here
</select>
for (let i = 0; i < select.options.length; i++) {
console.log(select.options[i]);
}
for(让i=0;i
我得到1个空选项元素的日志条目,并且只有1个(即使有多个选项),如:
<option value="" selected="" data-select2-id="8">
你知道会出什么问题吗
Edit1:我在同一个页面中有几个选择,所有选择都使用相同的函数来迭代这些选项。这是我唯一遇到问题的代码。您的代码中有语法错误: 在此语句中,
select.options.length
,select
不是有效的选择器或变量(基于您在问题中给出的代码)。它会给你一个选择是未定义的错误
将for循环切换到以下位置:
var dropDown = document.querySelector('.select2');
for (let i = 0; i < dropDown.options.length; i++) {
console.log(dropDown.options[i]);
}
var dropDown=document.querySelector('.select2');
for(设i=0;i
这将显示两个选项。Hi,select是有效元素。我将其作为参数发送到函数。如果我记录“select”,那么我会看到正确呈现的select元素。它是一个有效元素,但需要包装在
文档中。querySelector
或文档中。getElementsByTagName
或其他内容。您可以直接参照选择。上面的代码对您无效吗?这是我唯一遇到问题的select元素。另一个选择是我以同样的方式发送给函数的,它们工作得非常好。这很奇怪。打印出select的长度,然后查看for循环是否迭代了2次。@jaimish11您应该请求一个堆栈片段,而不是JSFIDLE或codepen。如果可能的话,我们更愿意把代码保存在这里。请发一封邮件。您可以使用使其可执行。