Javascript 单击“具有多个参数的指定函数”

Javascript 单击“具有多个参数的指定函数”,javascript,dom,parameters,Javascript,Dom,Parameters,我正在创建一个涉及数字的游戏。这个想法很简单,如果我点击一个数字(从1到6),我的代码随机选择一个(也从1到6)。如果我的选择(onclick)等于cpu的选择,游戏就结束了!如果他们都是不太可能的数字,我的分数加起来 现在的问题是,如果我点击“1”或“2”。(等等)我需要一个新的函数来处理所有的数字 代码如下所示 <button id="runs" onclick="i0()">0</button> <button id="runs" onclick="i1()"

我正在创建一个涉及数字的游戏。这个想法很简单,如果我点击一个数字(从1到6),我的代码随机选择一个(也从1到6)。如果我的选择(onclick)等于cpu的选择,游戏就结束了!如果他们都是不太可能的数字,我的分数加起来

现在的问题是,如果我点击“1”或“2”。(等等)我需要一个新的函数来处理所有的数字

代码如下所示

<button id="runs" onclick="i0()">0</button>
<button id="runs" onclick="i1()">1</button>
<button id="runs" onclick="i2()">2</button>
<button id="runs" onclick="i3()">3</button>
<button id="runs" onclick="i4()">4</button>
<button id="runs" onclick="i5()">5</button>
<button id="runs" onclick="i6()">6</button>
我可以用

function click(i0, i1, i2//etc)
if(i0 == true) {
    //some code
}

请记住!我需要使用参数(我是JavaScript新手)。

每个按钮不需要单独的函数。可以将参数直接传递给函数调用语句:

<button id="runs" onclick="i(0)">0</button>
<button id="runs" onclick="i(2)">1</button>
...

阅读更多信息,请点击此处:

每个按钮不需要单独的功能。可以将参数直接传递给函数调用语句:

<button id="runs" onclick="i(0)">0</button>
<button id="runs" onclick="i(2)">1</button>
...

阅读更多信息,请点击此处:

首先,您不应该使用HTML事件属性设置事件处理程序,因为该技术已经有20多年的历史了(其中之一是您将像现在这样编写大量冗余的事件处理程序调用)

请记住!我需要使用参数

不,你没有(除非这是你没有说明的某种学校作业——如果是这样的话,把你的钱拿回课程,因为讲师不应该教你写代码的过时方法,即使是为了学习目的)每个按钮都已经显示了对应的数字。使用参数只会增加代码中的冗余,使解决方案更加脆弱。您只需要一个集中式函数,当单击任何按钮时运行,然后该函数就可以简单地将随机数与单击的按钮的内容进行比较

此外,不能有多个元素具有相同的
id

请注意,当您将事件处理程序从HTML中分离出来时,HTML是多么干净,并且请注意,无论您希望游戏有多少个按钮,此解决方案都可以工作。只需确保游戏中的任何按钮都具有
gameButton
类,并且元素的内容是下一个尚未使用的数字字符

//将所有按钮放入一个数组中
var buttons=Array.prototype.slice.call(document.queryselectoral(“button.gameButton”);
//在按钮上打圈
按钮。forEach(功能(btn){
//给每个按钮一个click事件回调函数
btn.addEventListener(“单击”,函数(){
//生成一个从1到游戏中按钮数量的随机数
var num=Math.floor(Math.random()*buttons.length)+1;
var output=“随机数为:“+num+”,单击的按钮为:“+this.textContent;
//前缀+将文本转换为数字
if(num==+this.textContent){
警报(“您赢了!\n”+输出);
}否则{
警报(“继续尝试!\n”+输出);
}    
});
});
/*只是为了好玩*/
.游戏按钮{
背景色:#800080;
颜色:#ff0;
字体大小:粗体;
字号:2em;
边界半径:2米;
盒影:2px2p8080;
大纲:无;
}
.游戏按钮:活动{
盒影:-2px-2px#8080;
}
1
2.
3.
4.
5.

6
首先,您不应该使用HTML事件属性设置事件处理程序,因为这种技术已经有20多年的历史了(其中之一是您将像现在这样编写大量冗余的事件处理程序调用)

请记住!我需要使用参数

不,你没有(除非这是你没有说明的某种学校作业——如果是这样的话,把你的钱拿回课程,因为讲师不应该教你写代码的过时方法,即使是为了学习目的)每个按钮都已经显示了对应的数字。使用参数只会增加代码中的冗余,使解决方案更加脆弱。您只需要一个集中式函数,当单击任何按钮时运行,然后该函数就可以简单地将随机数与单击的按钮的内容进行比较

此外,不能有多个元素具有相同的
id

请注意,当您将事件处理程序从HTML中分离出来时,HTML是多么干净,并且请注意,无论您希望游戏有多少个按钮,此解决方案都可以工作。只需确保游戏中的任何按钮都具有
gameButton
类,并且元素的内容是下一个尚未使用的数字字符

//将所有按钮放入一个数组中
var buttons=Array.prototype.slice.call(document.queryselectoral(“button.gameButton”);
//在按钮上打圈
按钮。forEach(功能(btn){
//给每个按钮一个click事件回调函数
btn.addEventListener(“单击”,函数(){
//生成一个从1到游戏中按钮数量的随机数
var num=Math.floor(Math.random()*buttons.length)+1;
var output=“随机数为:“+num+”,单击的按钮为:“+this.textContent;
//前缀+将文本转换为数字
if(num==+this.textContent){
警报(“您赢了!\n”+输出);
}否则{
警报(“继续尝试!\n”+输出);
}    
});
});
/*只是为了好玩*/
.游戏按钮{
背景色:#800080;
颜色:#ff0;
字体大小:粗体;
字号:2em;
边界半径:2米;
盒影:2px2p8080;
大纲:无;
}
.游戏按钮:活动{
盒影:-2px-2px#8080;
}
1
2.
3.
4.
5.

6
如上所述,不能在多个元素上使用相同的ID

一个好方法是拉动按钮的id并将其传递给函数,如下所示:

请详细查看其他问题和答案:


如前所述,您不能在多个e上使用相同的ID
function i(param) {
  ...
}