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

标签 javascript html local-storage

我有一个调查网络应用程序可以从客户那里收集数据。我正在尝试将十几个不同的函数(每个选项一个)转换为一个简单的函数。 “投票”存储为 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>

如果每个函数都有单独的函数,那么函数就可以正常工作,将字母传递给新的 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>

DEMO

关于javascript - 将值从 javascript 中的按钮传递给创建 localStorage 变量的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18970497/

相关文章:

javascript - d3.mouse offset 返回的值不正确

javascript - 为什么我的计算器中的功能无法正常工作?

javascript - 在输入文件类型中选择文件时如何触发按钮单击事件?

javascript - Android 如何将值写入 HTML5 localstorage?

javascript - React 和 localStorage 获取 NaN

javascript - 呈现angular.js ui-map指令后如何触发 map 调整大小事件?

javascript - 创建 AngularJS 指令时 '?ngModel' 的意义是什么?

javascript - Knockout Safari 验证错误

html - Css block 和内联元素合二为一

javascript - 清除后,localStorage 会记住以前的值