我正在尝试使用本地存储使用javascript创建一个简单的留言板,用户键入他们的姓名和一些文本,然后在表格下方显示。
当我单击“删除”按钮而不是记录文本时,将其记录为“删除”(按钮的文本内容) 我有一个名为text的变量,该变量应保存用户提交的消息的文本,在这里我无法找出问题所在。
**function removeMessage(text){
console.log(text);
}**
function fetchMessages(){
let messages=JSON.parse(localStorage.getItem('messages'));
const messageBoard=document.querySelector('#messageBoard');
messageBoard.innerHTML="";
for(let i=0; i<messages.length; i++){
const name= messages[i].name;
**const text=messages[i].text;**
messageBoard.innerHTML+=
`<div class="all">
<div class="names">
<h3>${name}</h3>
</div>
<div class="messages">
<p>${text}</p>
</div>
<div class="button">
**<a onclick="removeMessage(text)" href="#" id="delete">Remove</a>**
</div>
</div>`;
}
}
答案 0 :(得分:1)
单击text
时没有全局变量<a onclick="removeMessage(text)" href="#" id="delete">Remove</a>
,text
引用this.text
元素的<a>
,即Remove
。也许您应该将removeMessage(text)
替换为removeMessage(${text})
或使用某种指向该条目的索引。