2017-02-06 3 views
0

Я просто пытался использовать локальное хранилище, то код, что я написал возвращает эту ошибку TypeError: null is not an object (evaluating 'favorites.length')Local Storage возвращается TypeError: нуль не является объектом

<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

Поместите свой скрипт после строк html. Что происходит, скрипт назначает функцию событию onclick флажка, который еще не существует.

Смежные вопросы