我有一个选择下拉菜单,每次刷新页面时我都必须重新填充选择下拉列表。这导致内存泄漏。这是代码重构的任何帮助都很好的代码。此外,我试图制作另一个方法并在此之前调用它,另一个方法将清空options数组并使其为null。这对我没有帮助。
var option = $(document.createElement("option"));
option.attr("value", List.id);
option.text(List.name);
if(List.name.length > maxSize) {
maxSize = List.name.length;
}
this.options.push(option);
//Mark the currently displayed list as the selected option
if (activeListId > 0) {
if (activeListId == List.id) {
option.attr("selected", true);
}
}
}
Toolbar.ListSelect.append(this.options);
答案 0 :(得分:0)
我建议创建一个新的Element,然后在使用slice超过maxSize时剪切提供的名称。稍后,如果activeListId和List.id匹配,我们添加参数“selected”。后者我们将新选项附加到Toolbar.ListSelect(我认为它是元素
var option = jQuery("<option />").attr('value', List.id);
var optionName = List.name.slice(maxSize);
option.text(optionName);
if ( activeListId && activeListId == List.id)
option.attr("selected", true);
option.appendTo(Toolbar.ListSelect)
答案 1 :(得分:0)
如果您包含更多周围的代码以便我们知道什么是什么会非常有用,但鉴于目前的情况,这里是我最好的镜头。
// Reference box
var $box = $('#id-of-select-box');
// Clear select box
$box.empty();
// START LOOP
// Create new option
var $option = $('<option value="'+List.id+'">"'+List.name+'"</option>');
// Append option to select box
$box.append($option);
// END LOOP
//Mark the currently displayed list as the selected option
if (activeListId > 0) {
$box.val(activeListId);
}