我有一个调查网络应用程序,用于收集客户的数据。我正在尝试将十几个不同的函数(每个选项一个)转换为一个简单的函数。 “投票”存储为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变量我做错了什么?
答案 0 :(得分:4)
要动态使用对象的属性,必须使用[]
表示法
<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>
答案 1 :(得分:2)
a
,b
和c
是变量。你应该使用字符串文字:
<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>