与此问题类似here我想了解如何从下拉列表中删除重复的选项,但是我想映射一个ID列表以搜索并查看如果他们有重复的选项拼接出来,而不是只有一个输入选择器。从下拉列表中删除多个重复的选项
这方面的一个例子是如下:
<select id="MeatList">
<option value="OBgYN7" >Ham</option>
<option value="ELmn5">Beef</option>
<option value="KrUKt6">Chicken</option>
<option value="OBgYN7" selected="selected">Ham</option>
</select>
<select id="Seats">
<option value="2" >Table For Two</option>
<option value="3">Table For Three</option>
<option value="5">Table for Five</option>
<option value="10" >Party Table</option>
</select>
<select id="Lastname">
<option value="Tao" >The Tao's</option>
<option value="Smith">The Smith's</option>
<option value="Samuels">The Samuels'</option>
<option value="Smith" >The Smith's</option>
</select>
正如你所看到的,MeatList和姓氏有重复值的投入,我希望能够搜索所有下拉重复值框(或内部文本)并将它们拼接在一起。这是可能的通过某种映射?
的代码中使用将是:
[].slice.call(fruits.options)
.map(function(a){
if(this[a.innerText]){
if(!a.selected) fruits.removeChild(a);
} else {
this[a.innerText]=1;
}
},{});
而且得到我的意思通过映射下拉列表的想法,我会用这样的代码:
var idlist= ["MeatList", "Seats", "Lastname"];
var handlelists = idlist.join("|");
[].slice.call(handlelists.options)
.map(function(a){
if(this.search([a.innerText])){
if(!a.selected) handlelists.removeChild(a);
} else {
this[a.innerText]=1;
}
},{});
是由服务器端脚本生成的选择?如果是,请考虑在那里完成工作 – 2014-08-29 07:06:58
您是否想要自行清除每个清单,还是重新组合清单?我们也可以假设值和文本都是重复的(即只有文本的值?) – ocodo 2014-08-29 07:38:09
@EmacsFodder每个列表都是自己的;是的,这是公平的假设文本是相同的值 – Brad 2014-08-29 07:45:19