Вызов $(".movie").html()
даст вам HTML только для первого элемента, найденного в классе фильма. Вместо этого вы хотите использовать метод each
для перебора каждого найденного элемента. Это можно сделать с помощью следующего:
var allHTML = "";
$(".movie").each(function(i) {
allHTML = allHTML + this.innerHTML;
});
Дополнительную документацию можно найти по адресу http://api.jquery.com/each/.
Обновление
Я немного переработал вашу функцию готовности, чтобы сохранить весь список фильмов, а затем перезагрузить его.
$(document).ready(function(){
$("#add").click(function(){
$(".movie").last().clone(true).insertAfter($(".movie").last());
});
$("#save").click(function(){
var titles = $(".title").html();
var divs = $("#movie-list").html();
localStorage.setItem("UserTitles", titles);
localStorage.setItem("divs", divs);
alert("Your list has been saved!");
});
$(function(){
var titles = "New Movie";
var divs = $("#movie-list").html();
if (localStorage.getItem("UserTitles") != null && localStorage.getItem("divs") != null)
{
titles = localStorage.getItem("UserTitles")
divs = localStorage.getItem("divs")
}
$(".title").html(titles);
$("#movie-list").html(divs);
});
});
Я обнаружил две проблемы с вашим кодом. Во-первых, ваш localStorage.getItem("UserTitles")
вызов блокировал вызов на localStorage.getItem("divs")
, так как вы использовали else if
. Во-вторых, когда вы проверяете значения localStorage.getItem
, вам нужно сравнить их с null
. Я также внес небольшое изменение, сохранив все содержимое элемента movie-list
в localStorage
.