我的建議是基於去除ID和避免保存單獨的複選框狀態:
我更新了Fiddle
$(document).on('click', '.delete', function() {
var parent = $(this).parent();
parent.remove();
var list = $("#list").html();
localStorage.setItem("list", list);
return false;
});
$(document).on('change', "input[name='checkbox-name']", function (e) {
if ($(this).prop('checked')) {
$(this).attr('checked', 'checked');
} else {
$(this).removeAttr('checked');
}
var list = $("#list").html();
localStorage.setItem("list", list);
});
$(function() {
if (localStorage.getItem('list')) {
$('#list').html(localStorage.getItem('list'));
}
$("#add").click(function() {
var userList = $('#textarea').val();
$('#textarea').val('');
var newitem = '<p>' + '<input type="checkbox" name="checkbox-name"/> ' + userList + '<input type="submit" value="X" class="delete"/></p>';
$('#list').append(newitem);
var list = $("#list").html();
localStorage.setItem('list', list);
return false;
});
});
<script src="http://code.jquery.com/jquery-1.12.1.min.js"></script>
<input type="text" id="textarea" placeholder="Write here..."/>
<button id="add">Add</button>
<div id="list"></div>
是你的複選框有不同名字呢?您只是將「複選框」1保存到本地存儲中,而不是任何標識符。 –
不,複選框只有id和name.Used名稱cos id是唯一的@CanCelik – Norx
您需要保存複選框的狀態與這些唯一的ID,以便您可以得到正確的。 –