将值从 javascript 中的按钮传递给创建 localStorage 变量的函数

Passing a value from a button in javascript to a function that creates a localStorage variable

本文关键字:创建 localStorage 函数 变量 按钮 javascript      更新时间:2023-09-26

我有一个调查网络应用程序在工作,用于从客户那里收集数据。 我正在尝试将十几种不同的函数(每个选项一个)转换为一个简单的函数。 "投票"存储为本地存储变量,以便每天可以重新打开调查而不会丢失数据。 这是我所拥有的:

<script>
function vote(choice)
{
   if (localStorage.choice)
   {
      localStorage.choice=Number(localStorage.choice)+1;
   }
   else
   {
      localStorage.choice=1;
   }
   alert("Thanks for your input!  Have a nice day");
}
</script>

然后我在身体上有看起来像这样的按钮:

<li class="li" onClick="vote(a);">choice 1</li>
<li class="li" onClick="vote(b);">choice 2</li>
<li class="li" onClick="vote(c);">choice 3</li>

如果我为每个函数提供单独的函数,那么函数就可以正常工作,我将字母传递到新的 localStorage 变量中做错了什么?

要动态使用对象的属性,您必须使用[]表示法

<script>
function vote(choice)
{
   if (localStorage[choice])
   {
      localStorage[choice]=Number(localStorage[choice])+1;
   }
   else
   {
      localStorage[choice]=1;
   }
   alert("Thanks for your input!  Have a nice day");
}
</script>

要将字母作为字符串传递,您必须用引号括起来

<li class="li" onClick="vote('a');">choice 1</li>
<li class="li" onClick="vote('b');">choice 2</li>
<li class="li" onClick="vote('c');">choice 3</li>

演示

abc都是变量。您应该使用字符串文本:

<li class="li" onClick="vote('a');">choice 1</li>
<li class="li" onClick="vote('b');">choice 2</li>
<li class="li" onClick="vote('c');">choice 3</li>