繁体   English   中英

jQuery .remove()移位索引

[英]jquery .remove() shifting indexes

我有一个名为AgentIDList2的mtuli选择框。 当我选择一堆选项并单击删除按钮时,希望将这些选项从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]);
    }
}

有任何想法吗? 谢谢!

试试这个

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

这是一个有效的例子

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-- )中的索引

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM