удалить значение из списка - PullRequest
       2

удалить значение из списка

0 голосов
/ 06 сентября 2011

У меня есть список текущих значений, который строится нажатием на набор флажков.При снятии флажка значение будет удалено из списка.Этот кусок работает отлично.

Также, когда я проверяю эту опцию, текст добавляется в выбранный раздел.Когда я снимаю флажок с опции, я хочу, чтобы эта опция выбора была удалена.Если выбранный параметр был удален, мне нужно снять флажок и удалить значение из рабочего списка.

$(".myCheckboxClass").change(function() {       
  var list = $('#bodyIDList').data('value');
  if( $(this).is(":checked") ) {list.push( $(this).val());          
    var text = $('label[for=' + $(this).val() + ']').text();    
    $("#selectedListSelected").append('<label></label>');
    $("#selectedListSelected").append('<ul class="options"><li onclick="this.parentNode.removeChild(this);">' + text + '</li></ul>');           
  } else {
    var index = list.indexOf($(this).val());        
    list.splice(index, 1);                  
    $(this).closest('ul').remove();         
  }     
  $("#bodyIDList").val(list);
});

1 Ответ

0 голосов
/ 07 сентября 2011

После того, как вы добавите новый выбор, выясните, какой индексный номер в вашем массиве. Затем вы можете назначить пользовательский класс для вашего тега UL. Если ваш индекс массива равен 7, вы можете добавить класс, подобный «arr7», к вашему UL:

var arrPosition = 'arr' + list.indexOf($(this).val());
$("#selectedListSelected").append('<ul class="options ' + arrPosition +'"><li onclick="this.parentNode.removeChild(this);">' + text + '</li></ul>');

Когда вы удаляете значение из массива, вы знаете индекс, так что вы можете сделать быстрый селектор jQuery, чтобы получить правильный узел UL и удалить его:

var arrPosition = 'arr' + index;    
$('ul.' + arrPosition ).remove();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...