Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有数组参数的Javascript onclick_Javascript_Html_Arrays_Parameters - Fatal编程技术网

带有数组参数的Javascript onclick

带有数组参数的Javascript onclick,javascript,html,arrays,parameters,Javascript,Html,Arrays,Parameters,我正试图找出如何使以下代码正常工作: <ul> <li id='anvil1' class='locked' onclick='anvil1.countCheck("anvil1", "defense", 10, event.button);'>+10 Defensive Ability</li> <li id='anvil4' class='locked' onclick='anvil4.countCheck("anvil4", "[

我正试图找出如何使以下代码正常工作:

<ul> 
    <li id='anvil1' class='locked' onclick='anvil1.countCheck("anvil1", "defense", 10, event.button);'>+10 Defensive Ability</li>
    <li id='anvil4' class='locked' onclick='anvil4.countCheck("anvil4", "[\"defense\", \"constitution\"]", [10, 20], event.button);'>+15 Defensive Ability <br />+20 Constitution</li> 
</ul>
  • +10防守能力
  • +15防御能力+20体质
这些链接是从星形对象访问方法。我需要将第二个和第三个参数设置为数组,因为它们的值数量可变。例如,第一颗星anvil1有一个属性(防御)和一个值(10)。第四颗星有两个属性(防御、体质)和两个值(10、20)。我相信统计数据/值的数量可以增加到3

到目前为止,如果我尝试调用
stats[0]
返回的值只是第一个字母

alert('Stats:'+Stats[0])会导致一个带有
Stats:d
Stats:[


我不知道如何解决这个问题,任何建议都将不胜感激!

您的数组用引号括起来。当您在字符串上使用[n]时,它将返回第n个字符。您还可以摆脱字符串转义(如elclanrs所说)

您能找出区别吗

"[\"defense\", \"constitution\"]"
是一个字符串和

[10, 20]
是数组。显然,您也希望第二个参数作为数组,因此需要将调用更改为

anvil4.countCheck("anvil4", ["defense", "constitution"], [10, 20], event.button);

我不会像那样传递参数。你可以为anvil元素添加一个eventlistener,并用数据属性传递参数

请看一下下面的代码片段,或者在本文中

var-anvil={
计数检查:功能(e){
var props=this.dataset.props.split(','),
points=this.dataset.points.split(',');
console.log(this.id、props、points);
}
}
//添加事件侦听器
var anvils=document.getElementsByClassName('anvil');
对于(变量i=0;i
  • +10防御能力
  • +15防御能力
    +20体质

为什么要在
之间转义“
在任何情况下,我都建议在JavaScript中添加事件。检查
addEventListener
您传递的不是带有
“[\'defense\”,\'constitution\']”的数组,而是一个字符串。为什么不像对第三个参数那样执行此操作?
[\'defense\”,\”宪法\“]
我只是想尽一切办法让它发挥作用-”“就像在第一个例子中,[](未显示),[\”],可能还有其他一些。你是建议我删除“onclick”部分,而是使用事件侦听器来调用函数?@PinkTurtle[“defence\”,“constitution\”]给出了一个语法错误。请看我的回答,我确实打错了。它应该是
[“防御”,“宪法”]