假设我有一堂课:Class Comment { constructor(user, comment) { this.username = document.createElement("span"); this.comment = document.createElement("p"); this.body = document.querySelector("body"); } createComment() { this.username.textContent = user; this.commet.textContent = comment; body.appendChild(this.username); body.appendChild(this.comment); }}每次用户在页面上输入用户名和评论并点击提交按钮时,它都会创建一个新的类实例(新评论!):const submitButton = document.querySelector("#submitButton");submitButton.addEventListener("click", () => { let addComment = new Comment(userInput.value, commentInput.value);}我想将这些实例中的每一个存储在 localStorage 中(按顺序):exisitingComments = []localStorage.setItem("existingComments", JSON.stringify(existingComments));存储分配给实例的变量 (addComment) 会导致方法 createComment 在加载时未定义:window.onload = function() { existingComments = JSON.parse(localStorage.existingComments); let i = existingComments.length - 1; for (; i >= 0; i--) { existingComments[i].createCommet() }}-> TypeError: existingComments[i].createComment is not a function我无法存储用户名和评论并创建新的类实例,因为用户名和评论不应该是唯一的,如果用户想删除评论我无法知道它在 localStorage 中的位置(如果让我们说有多个相同的评论)。起作用的一件事是每次单击提交按钮时,调用一个函数来循环整个评论部分:const commentSection = document.querySelector("#commentSection").children;for (x = 0; x < commentSection.length - 1; x++) { commentSection[x].setAttribute("id", `comment#{x}`);}这些 id 对应于 localStorage 中评论的位置。任何人都知道可以实现的更好方法吗?提前一百万谢谢!!
1 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
添加回答
举报
0/150
提交
取消