如何将多个选择的所有项目转移到另一个多项选择中?

时间:2012-07-17 13:50:23

标签: jquery

我可以将多个选择元素中的所选项目转移到另一个元素中:

<script language="javascript">
    $().ready(function() {
     $('#btnOne').click(function() {
      return !$('#users_interdits option:selected').remove().appendTo('#users_autorises');
     });
     $('#btnUndoOne').click(function() {
      return !$('#users_autorises option:selected').remove().appendTo('#users_interdits');
     });
    });
</script>

此代码未考虑“全部发送”功能,在这种情况下,当我单击“全部发送”按钮时,#users_interdits中的所有剩余项目都将转移到#users_autorises中。 怎么做?

2 个答案:

答案 0 :(得分:1)

$('#btnOne, #sendAll').on('click', function() {
    $('#users_interdits option'+($(this).is('#btnOne') ? ':selected' : ''))
        .remove()
        .appendTo('#users_autorises');
});

唯一的区别是,要发送所有选项,你不需要:selected伪选择器。

我假设你的意思是你真的想要从一个选项中清空选项并将它们移动到另一个选项,而不是在两个选项中都有选项。如果是后者,只需取消对remove()的调用。

答案 1 :(得分:1)

您只需删除:selected选择器即可匹配所有选项:

$("#users_interdits option").appendTo("#users_autorises");