从列表中删除值

时间:2011-09-06 18:04:18

标签: jquery-ui jquery-plugins jquery

我有一个运行值列表,它是通过单击一组复选框构建的。取消选中该复选框后,该值将从列表中删除。这件作品很好。

当我选中该选项时,文本也会添加到所选部分。当我取消选中该选项时,我希望删除该选项。如果删除了所选选项,我需要取消选中该复选框并从运行列表中删除该值。

$(".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 :(得分:0)

添加新选择后,找出数组中的索引号。然后,您可以为UL标记分配自定义类。如果您的数组索引是7,那么您可以在UL中添加类似“arr7”的类:

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();