2016-01-14 5 views
1

У меня есть список флажков, и я хочу, чтобы при его проверке метка или значение этого флажка будут добавлены в список.Как добавить элементы в список, если флажок установлен в jQuery?

Скринсейвер внизу, когда флажок установлен или снят, он добавляет «в» список.

Here's a sample fiddle

$('.cb').click(function() { 
    var cbVal = $("input[type='checkbox']").val(); 
    $('ul').append('<li>'+cbVal+'</li>') 
}); 

ответ

3

Up на нажатия, вы можете перебирать флажков см проверяется состояние и обновить список.

$('.cb').click(function() { 
$('ul').html(""); 
$(".cb").each(function(){ 
    if($(this).is(":checked")){ 
     $('ul').append('<li>'+$(this).val()+'</li>') 
    } 
}); 
}); 

Ниже приведено обновление fiddle.

+0

Я согласен, что это работает, но что произойдет, если есть, как и сотни таких флажки. Вы пересоздаете список каждый раз, когда вы устанавливаете/снимаете флажок. –

+0

Может ли он быть сохранен в локальном хранилище, чтобы при проверке и перезагрузке он был сохранен? – mark

0

Внутри обработчика событий вы можете использовать , чтобы проверить, какая чековая книжка выбрана, также лучше использовать событие change.

$('.cb').change(function() { 
    var cbVal = this.checked ? 'on ' : 'off '; 
    cbVal += $('[for='+this.id+']').text(); 
    $('ul').append('<li>'+cbVal+'</li>'); 
}); 

Чтобы иметь возможность удалить li из ul добавления идентификатора к нему при добавлении $('ul').append('<li id="item-' + this.id + '">' +cbVal+'</li>');

0

Попробуйте это:

$(document).ready(function() { 
    $('.cb').click(function() { 
    var szId=$(this).attr('id'); 
    var cbVal = $('label[for=' + szId + ']').text(); 
    $('ul').append('<li>' + cbVal + '</li>') 
    }); 
}); 
Смежные вопросы