jquery .remove () переменные индексы - PullRequest
2 голосов
/ 08 декабря 2011

У меня есть поле выбора mtuli под названием AgentIDList2. Когда я выбираю несколько вариантов и нажимаю кнопку удаления, я хочу, чтобы эти параметры были полностью удалены из 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 ]

4 голосов
/ 08 декабря 2011

Попробуйте вместо этого

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

Вот рабочий пример .

0 голосов
/ 08 декабря 2011
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--)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...