因此,我试图根据多个select元素中的选项值通过JQuery填充数组。对于每个选择元素,我希望将数组重新创建为一个空数组,并再次填充新选项。但是,当我在控制台中检查数组时,页面加载后似乎已经充满了每个select元素中的项目。
这是我的JavaScript代码:
$( document ).ready(function() {
$('#reportForm select').each(function(){
var optionValues=[];
console.log(optionValues);
$('option').each(function(){
if($.inArray(this.value, optionValues) >-1){
$(this).remove()
}else{
optionValues.push(this.value);
}
});
});
});
在第一个console.log()上,数组中应该有零个元素,但是它有200个以上。
有什么想法吗?
答案 0 :(得分:2)
这是因为循环遍历页面上的所有选项。您必须在选择下拉列表中找到选项。因此,使用$(this).find('option')
代替$('option')
,
$('#reportForm select').each(function(){
var optionValues=[];
console.log(optionValues);
$(this).find('option').each(function(){ // $(this).find will only find options inside the current select
if($.inArray(this.value, optionValues) >-1){
$(this).remove()
} else {
optionValues.push(this.value);
}
});
});