JQuery从其他DropDow中删除DropDown中的选定选项,停止工作并挂起

时间:2012-01-13 08:19:23

标签: javascript jquery ajax drop-down-menu hang

我使用以下javascript从DropDown B中删除DropDown A中选择的选项。

$('#A').bind('keypress', function(e){ 

      if ( e.which == 52 ){
        var selectedItems  = $('#A').val();
        var $list = $("#B"),
            toRemove = $(),
            selectedItems = $("#A").val();
        for ( var i = 0 ; i < selectedItems.length; i++) {
          toRemove = toRemove.add($list.find('option[value="' + selectedItems[i] + '"]'));
        }
        toRemove.remove();
      }
});

该选项已从DropDown B中删除,但是,当我按下该键时,javascript会挂起。请帮忙。

还有其他一些jquery吗?

1 个答案:

答案 0 :(得分:0)

我无法解释为什么一切都悬而未决,但我认为您的代码中有一些可以改进的东西。

如果你有一个“下拉列表”,那么select元素将是单选的,这意味着.val() method将返回一个字符串而不是一个数组(它只返回一个数组,如果是{{ 1}}元素),如果它返回一个字符串你不需要for循环,因为 - 好吧,没有什么可循环的。如果这是真的,您的代码的简化版本将是:

<select multiple="multiple">

如果所选项目的#B中没有匹配选项,则不会发生任何事情。

我不明白密钥代码52的重要性,但我把它留在了。