Javascript 无法从名为onclick的函数中获取要传递的变量
我正在调用一个函数onclickJavascript 无法从名为onclick的函数中获取要传递的变量,javascript,function,variables,arguments,Javascript,Function,Variables,Arguments,我正在调用一个函数onclicksecVar(sec1)应该通过下面的脚本运行它,但它似乎没有这样做,有人能告诉我我做错了什么吗。我是javascript新手,对脚本编写只有一点经验,而这段代码似乎做得越来越少 <script type="text/javascript"> var sec1=0; var sec2=0; var sec3=0; function secVar(){ if(sec1
secVar(sec1)代码>应该通过下面的脚本运行它,但它似乎没有这样做,有人能告诉我我做错了什么吗。我是javascript新手,对脚本编写只有一点经验,而这段代码似乎做得越来越少
<script type="text/javascript">
var sec1=0;
var sec2=0;
var sec3=0;
function secVar(){
if(sec1) {
sec1++;
document.getElementById('sec1text').innerHTML = sec1;
}
if(sec2) {
sec2++;
document.getElementById('sec2text').innerHTML = sec2;
}
if(sec3) {
sec3++;
document.getElementById('sec3text').innerHTML = sec3;
}
}
function largestVar(){
if (sec1 >= sec2 && sec1 >= sec3) {
//a
document.getElementById('rig').innerHTML = 'Test1';
} else if (sec2 >= sec1 && sec2 >= sec3) {
//b
document.getElementById('rig').innerHTML = 'Test2';
} else {
//c
document.getElementById('rig').innerHTML = 'Test3';
}
}
</script>
如果有人能向我解释我做错了什么,我将不胜感激。在这个实现中,您的计数器都不会增加
运行secVar()时,所有计数器都为零。它们从不递增,因为它们从零开始。在此实现中,您的任何计数器都不会递增
运行secVar()时,所有计数器都为零。它们从不增加,因为它们从零开始。我想很难判断你的意图是什么。如果您试图做的是查看sec1、2和3当前是真是假(0或1),那么Sparticus是正确的。因为它们目前是错误的,所以代码永远不会像Sparticus正确指出的那样做任何事情
然而,我不相信你真的想这么做。看起来您要检查的条件是您是否尝试递增sec1、2或3。换言之,“如果您将sec1传递给我,请增加它并更新一段HTML”
但变量不是这样工作的。当你说secVar(sec1)
你实际上说的是“secVar(0)”。我认为这不是你的意图
所以,如果我错了,那是在浪费我的时间,但因为我已经在努力,让我们假装我是对的:
secVar需要能够接受一个参数,但现在您已经声明它为void。将其更改为接受参数是第一步:
函数secVar(param){…}代码>
但这仍然没有任何作用。因为当您仍然使用现有语法传递它“0”时。您需要传递一些可以检查的内容,如字符串:
secVar('sec1')代码>
执行此操作时,现在可以更新条件以检查传递的字符串
if(param=='sec1'){…}
这是一把小提琴:
注意事项:
- fiddle包含jQuery,只是为了在按钮上轻松绑定暴力事件。这只是一个例子。您不需要jQuery;按你的意愿绑定你的事件
- 它目前并没有使用最大值函数做任何事情,即使代码还在处理中
我想很难说你的意图是什么。如果您试图做的是查看sec1、2和3当前是真是假(0或1),那么Sparticus是正确的。因为它们目前是错误的,所以代码永远不会像Sparticus正确指出的那样做任何事情
然而,我不相信你真的想这么做。看起来您要检查的条件是您是否尝试递增sec1、2或3。换言之,“如果您将sec1传递给我,请增加它并更新一段HTML”
但变量不是这样工作的。当你说
secVar(sec1)
你实际上说的是“secVar(0)”。我认为这不是你的意图
所以,如果我错了,那是在浪费我的时间,但因为我已经在努力,让我们假装我是对的:
secVar需要能够接受一个参数,但现在您已经声明它为void。将其更改为接受参数是第一步:
函数secVar(param){…}代码>
但这仍然没有任何作用。因为当您仍然使用现有语法传递它“0”时。您需要传递一些可以检查的内容,如字符串:
secVar('sec1')代码>
执行此操作时,现在可以更新条件以检查传递的字符串
if(param=='sec1'){…}
这是一把小提琴:
注意事项:
- fiddle包含jQuery,只是为了在按钮上轻松绑定暴力事件。这只是一个例子。您不需要jQuery;按你的意愿绑定你的事件
- 它目前并没有使用最大值函数做任何事情,即使代码还在处理中
这正是我想要做的,你的JSFIDLE帮了我大忙,很抱歉我很难解释我的问题。非常感谢,这就是我想要做的,你的JSFIDLE,帮了我很多,很抱歉我很难解释我的问题。非常感谢,
<script type="text/javascript">
var sec1=0;
var sec2=0;
var sec3=0;
function sec1Var(){
sec1++;
document.getElementById('sec1text').innerHTML = sec1;
}
function sec2Var(){
sec2++;
document.getElementById('sec2text').innerHTML = sec2;
}
function sec3Var(){
sec3++;
document.getElementById('sec3text').innerHTML = sec3;
}</script>