jquery .remove()移动索引

时间:2011-12-07 20:17:33

标签: javascript jquery indexing

我有一个名为AgentIDList2的mtuli-select框。当我选择一堆选项并点击删除按钮时,我希望从AgentIDList2中完全删除这些选项。相反正在发生的事情是,每当我删除一个元素时索引就会改变,所以我的代码不起作用。关于如何解决这个问题的任何想法:

function remove_agents() {
var List = $('#AgentIDList2');
List = List[0]; 
selected = new Array(); 
for (var i = 0; i < List.options.length; i++) {
    if (List.options[i].selected) {
        selected.push(i);
    }
}

// Break it out like this so we don't screw up the indices and pick the wrong item
for (i=0; i<selected.length; i++) {
    List.options.remove(selected[i]);
    }
}

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:4)

试试这个

$('#AgentIDList2 option:selected').remove(); 

这是一个working example

答案 1 :(得分:0)

function remove_agents() {
var List = $('#AgentIDList2')[0];
selected = []; 
for (var i = 0; i < List.options.length; i++) {
    if (List.options[i].selected) {
        selected.push(i);
    }
}

// Break it out like this so we don't screw up the indices and pick the wrong item
for (i=0; i<selected.length; i++) {
    List.options.remove(selected[i--]);
    }
}

清理了一下,但解决它的方法是在for循环中手动调整索引(i--