我只是尝试使用本地存储,我写的代码是返回此错误TypeError: null is not an object (evaluating 'favorites.length')
<script type="text/javascript">
$('.faChkRnd').on('click', function() {
var fav, favs = [];
$('.faChkRnd').each(function() { // run through each of the checkboxes
fav = {id: $(this).attr('id'), value: $(this).prop('checked')};
favs.push(fav);
});
localStorage.setItem("favorites", JSON.stringify(favs));
});
$(document).ready(function() {
var favorites = JSON.parse(localStorage.getItem('favorites'));
if (!favorites) {return};
console.debug(favorites);
for (var i=0; i<favorites.length; i++) {
console.debug(favorites[i].value == 'on');
$('#' + favorites[i].id ).prop('checked', favorites[i].value);
}
});
</script>
<input type="checkbox" class="faChkRnd" id="like1" />
<input type="checkbox" class="faChkRnd" id="like2" />
<input type="checkbox" class="faChkRnd" id="like3" />
此代码应运行良好,我无法找出导致错误的原因
答案 0 :(得分:0)
将您的脚本放在html行之后。会发生什么是脚本将函数分配给尚未存在的复选框的onclick事件。