Javascript 如何访问onclick事件的更改值?
我是javascript的初学者,正在进行MMA评分,我想知道如何访问result1Red的更改值Javascript 如何访问onclick事件的更改值?,javascript,html,Javascript,Html,我是javascript的初学者,正在进行MMA评分,我想知道如何访问result1Red的更改值 <span><a id="result1Red">0</a></span> 当我尝试使用“innerHTML”时,它返回0(初始值) 而不是确定的值。我需要这个值与其他输入相加,得到总结果 完整代码: //第一轮 函数tenRed1(){ var i=10; 结果1红色+=1*i; 如果(result1Red>10){return;} docum
<span><a id="result1Red">0</a></span>
当我尝试使用“innerHTML”时,它返回0(初始值)
而不是确定的值。我需要这个值与其他输入相加,得到总结果
完整代码:
//第一轮
函数tenRed1(){
var i=10;
结果1红色+=1*i;
如果(result1Red>10){return;}
document.getElementById(“result1Red”).innerHTML=result1Red;
};
函数nineRed1(){
变量i=9;
结果1红色+=1*i;
如果(result1Red>10){return;}
document.getElementById(“result1Red”).innerHTML=result1Red;
};
函数eightRed1(){
var i=8;
结果1红色+=1*i;
如果(result1Red>10){return;}
document.getElementById(“result1Red”).innerHTML=result1Red;
};
函数tenBlue1(){
var i=10;
结果1blue+=1*i;
如果(result1Blue>10){return;}
document.getElementById(“result1Blue”).innerHTML=result1Blue;
};
函数nineBlue1(){
变量i=9;
结果1blue+=1*i;
如果(result1Blue>10){return;}
document.getElementById(“result1Blue”).innerHTML=result1Blue;
};
函数eightBlue1(){
var i=8;
结果1blue+=1*i;
如果(result1Blue>10){return;}
document.getElementById(“result1Blue”).innerHTML=result1Blue;
}
//第二轮
函数tenRed2(){
var i=10;
结果2red+=1*i;
如果(result2Red>10){return;}
document.getElementById(“result2Red”).innerHTML=result2Red;
};
函数nineRed2(){
变量i=9;
结果2red+=1*i;
如果(result2Red>10){return;}
document.getElementById(“result2Red”).innerHTML=result2Red;
};
函数8(){
var i=8;
结果2red+=1*i;
如果(result2Red>10){return;}
document.getElementById(“result2Red”).innerHTML=result2Red;
};
函数tenBlue2(){
var i=10;
结果2蓝色+=1*i;
如果(result2Blue>10){return;}
document.getElementById(“result2Blue”).innerHTML=result2Blue;
};
函数nineBlue2(){
变量i=9;
结果2蓝色+=1*i;
如果(result2Blue>10){return;}
document.getElementById(“result2Blue”).innerHTML=result2Blue;
};
函数eightBlue2(){
var i=8;
结果2蓝色+=1*i;
如果(result2Blue>10){return;}
document.getElementById(“result2Blue”).innerHTML=result2Blue;
};
//第三轮
函数tenRed3(){
var i=10;
结果3red+=1*i;
如果(result3Red>10){return;}
document.getElementById(“result3Red”).innerHTML=result3Red;
};
函数nineRed3(){
变量i=9;
结果3red+=1*i;
如果(result3Red>10){return;}
document.getElementById(“result3Red”).innerHTML=result3Red;
};
函数Eightreed3(){
var i=8;
结果3red+=1*i;
如果(result3Red>10){return;}
document.getElementById(“result3Red”).innerHTML=result3Red;
};
函数tenBlue3(){
var i=10;
结果3blue+=1*i;
如果(result3Blue>10){return;}
document.getElementById(“result3Blue”).innerHTML=result3Blue;
};
函数nineBlue3(){
变量i=9;
结果3blue+=1*i;
如果(result3Blue>10){return;}
document.getElementById(“result3Blue”).innerHTML=result3Blue;
};
函数eightBlue3(){
var i=8;
结果3blue+=1*i;
如果(result3Blue>10){return;}
document.getElementById(“result3Blue”).innerHTML=result3Blue;
};代码>
MMAScore测试版
mmaScore 0.1版本
8.
9
10
0 -
0
10
9
8.
8.
9
10
0 -
0
10
9
8.
8.
9
10
0 -
0
10
9
8.
总数:
0 -
0
关于您的代码
首先,我想指出代码中的几个问题,并给您一些建议:
- 写
而不是
如果您不打算添加HTML,请使用
- 你的JavaScript代码太冗余了:你已经定义了18个类似的函数!功能需要可重用
提议
下面是您如何实现流程的方法
- 我们将向文档中添加一个事件侦听器,以侦听页面内的任何单击。我们会用它
document.addEventListener('click', function() {})
如您所见,它采用事件类型('click'
)和一个回调函数,该函数将在事件发生时执行。我们需要定义这个回调
- 回调首先需要检查单击的项是否确实是一个按钮,并且它的父项(如果他有)具有类名:
.round
const parent = event.target.parentElement;
if (parent && parent.classList.contains('round')) {
...
}
如果满足条件,则表示用户已单击其中一个按钮
- 在if块中,我们可以开始使用已单击的元素
event.target
(在本例中,它将是
元素之一)。我们将首先保存一些变量:按钮(元素)、金额(按钮的值)和团队(团队:红色或蓝色)
- 然后我们将更新该轮的点:
parent.querySelector('.result'+team).textContent = amount;
- 最后,使用
updateTotals
更新总金额:
updateTotals('.result'+team);
完整代码:
const updateTotals=函数(类名){
const total=[…document.querySelectorAll('.round'+className)]
.map(e=>parseInt(e.textContent))
.减少((a,b)=>a+b);
document.querySelector('.results>'+className).textContent=total;
};
document.addEventListener('click',function(){
const parent=event.target.parentElement;
如果(parent&&parent.classList.contains('round')){//这是一个
const按钮=event.target;
const amount=button.textContent;
const team=button.className.substr(3);
//更新团队得分
parent.querySelector('.result'+team).textContent=金额;
//更新每个团队的总数
updateTotals(“.result”+团队);
}
});代码>
mmaScore 0.1版
8.
9
10
0 -
0
10
9
8.
8.
9
10
0 -
0
10
9
8.
8.
9
10
0 -
0
10
9
8.
总数:
0 -
0
发现帖子已经接受了答案,当我
parent.querySelector('.result'+team).textContent = amount;
updateTotals('.result'+team);