附加到选择泄漏内存JavaScript JQuery

时间:2013-06-13 14:29:37

标签: javascript jquery

我有一个选择下拉菜单,每次刷新页面时我都必须重新填充选择下拉列表。这导致内存泄漏。这是代码重构的任何帮助都很好的代码。此外,我试图制作另一个方法并在此之前调用它,另一个方法将清空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);

2 个答案:

答案 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);
}