Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 - Fatal编程技术网

Javascript 如何访问onclick事件的更改值?

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

我是javascript的初学者,正在进行MMA评分,我想知道如何访问result1Red的更改值

<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);