如何使用javascript将大量的选择选项移动到另一个选择控件
How to move large amount of select options to another select control using javascript?
我在决斗列表框控件上方有一个链接,该控件为"全选"。功能是将<select>
选项从一个选择移动到另一个选择。
jQuery从源移动到目标,运行良好,但现在源<select>
中有超过100000条记录,并导致
未捕获范围错误:超出的最大调用堆栈大小
在Chrome中,在Firefox中弹出一个无响应的脚本。这是jQuery:
$('#' + source + ' option').remove().appendTo('#' + destination).removeAttr('selected');
有没有一种方法可以限制对浏览器的影响,而不会导致大量<option>
出现问题?
我没有足够的声誉发表评论,但我想加入讨论。我似乎甚至无法构建一个可以使用jquery在googlechrome中打开的select语句。我的代码是
function selectBuild() {
html = '<select id="select1">';
for (i=0;i<100001;i++) {
html += '<option>' + i + '</option>';
}
html += '</select>';
$('#selectdiv').html(html);
html ='';
}
也许您可以将所有选项迭代到一个数组并重新打印该数组?有点像
var options = new Array();
$('#'+source+' option').each(function() { options.push($(this).val()); });
html = '<select id="' + destination + '">';
$(options).each(function(index,value) { html+='<option>'+value+'</option>'; });
html += '</select>';
$('#div').html(html);
与其逐行解析,不如将整个HTML从源代码复制到目标代码,然后从源代码中删除HTML。我不完全确定你对活动类做了什么,但你可能只需要添加一个addClass()或removeClass()作为nessecary。
$('#' + destination).html($('#' + source + ' option').html());
$('#' + source + ' option').html('');
这里有一个jsFiddle和一个工作示例,尽管它没有100000个选项。https://jsfiddle.net/j9qtej9r/
相关文章:
- CKeditor:更改对话框中的默认选择选项
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- AngularJs列表ng单击以选择选项转换
- 使用基于文本的 Jquery 选择选项
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 选择选项时如何显示警报
- 使用php动态更改选择选项
- 选择“选择选项”时显示文本.怎么做
- LEAFLET地图和带有选择选项的标记-ANGULARjs
- 使用js将动态内容添加到选择选项列表中
- 用于使用javascript循环选择选项
- AngularJS-选择选项并在函数中使用它
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 如何使用jQuery隐藏与选择选项相关的选择选项列表
- 选择选项是添加或删除事件
- 使用jQuery向“选择选项”添加默认属性
- 构建HTML选择字段并使用JavaScript数组选择选项
- 带有动态选择选项的Firefox html5验证异常
- 只有当Angular从资源对象检索数据时,才选择选项元素