Javascript localStorage第二个参数不使用';不接受输入值
我正在使用localStorage存储一些值,但它不适用于我确认为字符串的输入。它适用于硬编码字符串,如“chicken”,但不适用于input.value以下是我的代码:Javascript localStorage第二个参数不使用';不接受输入值,javascript,html,string,Javascript,Html,String,我正在使用localStorage存储一些值,但它不适用于我确认为字符串的输入。它适用于硬编码字符串,如“chicken”,但不适用于input.value以下是我的代码: render方法将清除输入值。由于在localStorage中设置值之前调用的是render,因此只会得到一个空值。在调用render之前,将值存储在localStorage中: 函数addItem(){ 菜单。推({ itemName:inputName.value, itemPrice:inputPrice.value
render
方法将清除输入值。由于在localStorage中设置值之前调用的是render
,因此只会得到一个空值。在调用render
之前,将值存储在localStorage中:
函数addItem(){
菜单。推({
itemName:inputName.value,
itemPrice:inputPrice.value
});
让项目=“鸡肉”
setItem(“itemName”,item);
setItem(“itemPrice”,inputPrice.value);
log(localStorage.getItem(“itemName”);
log(localStorage.getItem(“itemPrice”);
渲染(菜单);
}
您的渲染
方法将清除您的输入值。由于在localStorage中设置值之前调用的是render
,因此只会得到一个空值。在调用render
之前,将值存储在localStorage中:
函数addItem(){
菜单。推({
itemName:inputName.value,
itemPrice:inputPrice.value
});
让项目=“鸡肉”
setItem(“itemName”,item);
setItem(“itemPrice”,inputPrice.value);
log(localStorage.getItem(“itemName”);
log(localStorage.getItem(“itemPrice”);
渲染(菜单);
}
检查inputPrice.value是否为字符串,因为setItem接受字符串值。
尝试使用inputPrice.value.toString()/String(inputPrice.value)检查inputPrice.value是否为字符串,因为setItem接受字符串值。
尝试使用inputPrice.value.toString()/String(inputPrice.value)你从控制台.log(inputPrice.value)中得到了什么?@Cully它在菜单数组中存储inputPrice.value很好,但是的,我调用它时得到“”。你从控制台.log(inputPrice.value)得到什么?@Cully它在菜单数组中存储inputPrice.value很好,但是是的,我调用它时得到“”。
let menu = [];
const menuDiv = document.querySelector("#menu");
const inputName = document.querySelector("#item-name");
const inputPrice = document.querySelector("#item-price");
document.querySelector("#add-btn").addEventListener("click", addItem);
document.querySelector("#del-btn").addEventListener("click", () => delItem(menu.length - 1));
function render(items) {
menuDiv.innerHTML = "";
[inputName, inputPrice].forEach(input => input.value = "");
items.forEach((item, index) => menuDiv.append(menuElement(item, index)));
}
function menuElement(item, index) {
const menuText = document.createElement("span");
menuText.innerText = `${item.itemName} - ${item.itemPrice}`;
const delBtn = document.createElement("button");
delBtn.innerText = "delete item";
delBtn.addEventListener("click", () => delItem(index));
const itemDiv = document.createElement("div");
[menuText, delBtn].forEach(el => itemDiv.append(el));
return itemDiv;
}
function delItem(index) {
menu.splice(index, 1);
render(menu);
}
function addItem() {
menu.push({
itemName: inputName.value,
itemPrice: inputPrice.value
});
render(menu);
let item = "chicken"
localStorage.setItem("itemName", item);
localStorage.setItem("itemPrice", inputPrice.value );
console.log(localStorage.getItem("itemName"));
console.log(localStorage.getItem("itemPrice"));
}