是否可以使用jQuery / javascript在选择下拉列表中删除所选选项的重复项?
我已经尝试在PHP中使用if/else
,但这是12个文件的一长行代码。
我也尝试过从这里获得的这段代码
var optionValues =[];
$('#locationList option').each(function(){
if($.inArray(this.value, optionValues) >-1){
$(this).remove()
}else{
optionValues.push(this.value);
}
});
这对我不起作用,因为此代码只会删除所有重复项,无论选择了什么
例如,我有这行代码
<select name="select">
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
<option value="one" selected>One</option>
</select>
最后一个option
的原因是因为我刚刚从数据库中回显了该值,并将其设置为selected以显示该选择下拉列表的当前值。
我希望输出结果是具有selected
属性的选项的重复项将从下拉列表中删除
答案 0 :(得分:0)
此代码将为您提供帮助。
var obj = {};
$("select").children("option").each(function(){
let val = $(this).attr("value");
if(obj[val]){
if($(this).is(":selected")){
obj[val].remove();
obj[val] = $(this);
}else if(obj[val].is(":selected")){
$(this).remove()
}else{
$(this).remove();
}
}
obj[val] = $(this);
});