我有一个运行值列表,它是通过单击一组复选框构建的。取消选中该复选框后,该值将从列表中删除。这件作品很好。
当我选中该选项时,文本也会添加到所选部分。当我取消选中该选项时,我希望删除该选项。如果删除了所选选项,我需要取消选中该复选框并从运行列表中删除该值。
$(".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);
});
答案 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();