2011-06-01 137 views
1

我需要能够克隆下拉列表并只筛选尚未在选择列表组中选择的选项。jquery删除/添加克隆选择列表后的选择选项

例如,具有如下:

<select name="SelectService" class="selService"> 
<option value="1">Some service</option> 
<option value="2">Another one</option> 
<option value="3">One more</option> 
</select> 

当我点击“克隆”按钮,将克隆的选择列表中,只有那些还没有被选择的选项。

例如:选择选项“部分服务” - >打克隆 - >新的选择列表仅添加选项值:2和3

etc..cloning和删除选择列表将重新填写选择基于迄今选择的选项列表。

编辑: ,以更好地在这里显现它的屏幕截图: enter image description here

场景:

  1. 我开始只有1下拉 列表(即有5个选项)=> 默认情况下,选择1,2,3,4,5 - >第一个选项。
  2. 我点击克隆 - > 新列表中只添加了选项 2,3,4,5。
  3. 我选择选项5(在选择列表

    2)

  4. 我打克隆 - >新的列表(#3)添加 只有选项2,3,4
  5. 我选择选项2(在选择列表

    3)

  6. 我打克隆 - >新的列表(#4)与选项创建的 3,4

..等等。

现在,当我删除选择列表#2(或任何其他选择列表),这意味着所有选择列表应该重新新鲜,包括删除选择列表中的选项(在我们的例子#2)

帮助。 感谢

回答

3

这似乎做你想要什么:http://jsfiddle.net/infernalbadger/SKVSu/1/

$('#clone').click(function() { 
    var original = $('select.selService:eq(0)'); 
    var allSelects = $('select.selService'); 
    var clone = original.clone(); 

    $('option', clone).filter(function(i) { 
     return allSelects.find('option:selected[value="' + $(this).val() + '"]').length; 
    }).remove(); 

    $('#target').append(clone).append('<br />'); 
}); 
+0

不超过2项工作。 – ShaneKm 2011-06-01 08:39:41

+0

@Shane抱歉,您的意思是? – 2011-06-01 08:42:03

+0

请查看更新后的问题 – ShaneKm 2011-06-01 09:26:53