本地存储正在返回TypeError:null不是对象

时间:2017-02-06 13:09:57

标签: html5 local-storage

我只是尝试使用本地存储,我写的代码是返回此错误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" />

此代码应运行良好,我无法找出导致错误的原因

1 个答案:

答案 0 :(得分:0)

将您的脚本放在html行之后。会发生什么是脚本将函数分配给尚未存在的复选框的onclick事件。