【发布时间】:2016-08-05 13:47:20
【问题描述】:
我有一个 contenteditable div 作为编辑器,允许用户输入文本并将其保存在标题下。然后将标题名称附加到一个单独的 div,id 为“Contentable”,当用户单击标题时,其内容(用户输入的文本)将显示在编辑器中。我还添加了一个按钮来删除“Contentable”中的任何标题,但我不知道如何从本地存储中删除它们,因为它们没有分配给它的特定键。到目前为止,我只能从 div 中删除单词,而不是实际的本地存储。
var editElem = document.getElementById("editor1");
$(document).ready(function() {
$("#savebtn").click(function() {
var title = prompt("What would you like your title to be?");
localStorage.setItem(title, editElem.innerHTML);
titles = localStorage.getItem("titles");
if (titles == null) {
titles = [];
} else {
titles = JSON.parse(titles);
}
titles.push(title);
localStorage.setItem("titles", JSON.stringify(titles));
var htmlData = "<a onclick=showData('" + title + "')>" + title + "</a><br>";
$("#Contentable").append(htmlData);
var userVersion = editElem.innerHTML;
localStorage.setItem("userEdits", userVersion);
editElem.innerHTML = "";
});
});
function showData(txt) {
editElem.innerHTML = localStorage.getItem(txt);
}
function loadData()
{
var htmlData=localStorage.getItem("titles");
htmlData=htmlData.replace(/\[|\]/g, "");
htmlData=htmlData.replace(/["']/g, "")
htmlData=htmlData.split(",");
var arlength=htmlData.length;
console.log(arlength)
for(num=0;num<arlength;num++)
{
$("#Contentable").append("<a onclick=showData('" + htmlData[num] + "')>" + htmlData[num] + "</a><br>");
}
}
loadData();
var selected;
$("#Contentable a").click(function(){
selected=$("#Contentable a").index(this);
$("#Contentable a").removeClass("selected")
$(this).addClass("selected");
})
$("a").hover(function() {
$(this).css('cursor','pointer');
});
$("#remove").click(function(){
$("#Contentable a:eq("+selected+")").remove();
//Code to remove from localstorage
})
【问题讨论】:
标签: javascript jquery html