将元素添加到选择框,除非它们已经存在
Posted
技术标签:
【中文标题】将元素添加到选择框,除非它们已经存在【英文标题】: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 最简洁的方法是什么?
【问题讨论】:
【参考方案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/
问候丹尼尔
【讨论】:
以上是关于将元素添加到选择框,除非它们已经存在的主要内容,如果未能解决你的问题,请参考以下文章