【问题标题】:Add elements to select box unless they already are present将元素添加到选择框,除非它们已经存在
【发布时间】:2011-10-23 03:32:03
【问题描述】:
我正在尝试将项目从另一个选择元素添加到一个选择元素,但前提是它们尚不存在:
$('#srcSelect option:selected').appendTo('#dstSelect')
唯一的问题是,如果#dstSelect 中已经存在相同的值,我希望跳过#srcSelect 中的项目。或者换句话说,#dstSelect 中的值应该是唯一的。
使用 jQuery 最简洁的方法是什么?
【问题讨论】:
标签:
javascript
jquery
select
jquery-selectors
unique
【解决方案1】:
我的解决方案是使用.filter 将所选项目列表过滤为仅在第二个选择中不存在的项目:
$('#srcSelect option:selected').filter(function() {
return $('#dstSelect option[value="' + $(this).attr('value') + '"]').length == 0;
}).appendTo('#dstSelect')
我假设您使用的是<select multiple="multiple">,否则有更简单的方法
这里是 JSFiddle:http://jsfiddle.net/43P7M/1/
问候丹尼尔