将元素添加到选择框,除非它们已经存在

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/

问候丹尼尔

【讨论】:

以上是关于将元素添加到选择框,除非它们已经存在的主要内容,如果未能解决你的问题,请参考以下文章

将数据从数据库添加到文本框 - Jquery

如何在选择框更改JavaScript值时添加和删除消息?

在html中创建一个小颜色框

从组合框中选择时,Access 添加新记录

总计匹配列表框选择

Android 行为不端上的 PhoneGap 选择框