计算JavaScript测验的分数
我正试着做一个测验,但是我在显示分数时遇到了问题 我使用带有值的单选按钮,错误答案为0,正确答案为25。我无法显示分数。以下是我到目前为止所掌握的内容(HTML和Javascript)计算JavaScript测验的分数,javascript,html,Javascript,Html,我正试着做一个测验,但是我在显示分数时遇到了问题 我使用带有值的单选按钮,错误答案为0,正确答案为25。我无法显示分数。以下是我到目前为止所掌握的内容(HTML和Javascript) 函数resultScore(){ 结果=0; var ans1=document.getElementById(“q1”).值; var ans2=document.getElementById(“q2”).值; var ans3=document.getElementById(“q3”).值; var ans
函数resultScore(){
结果=0;
var ans1=document.getElementById(“q1”).值;
var ans2=document.getElementById(“q2”).值;
var ans3=document.getElementById(“q3”).值;
var ans4=document.getElementById(“q4”).值;
结果+=ans1+ans2+ans3+ans4;
}
测验:
哪个是机械工程
研究、设计和应用使用电、电子和电磁的设备、装置和系统。
电脑类
利用工程物理、工程数学和材料科学原理设计、分析、制造和维护机械系统的研究
野生动物研究
尼古拉·特斯拉是谁
塞尔维亚裔美国发明家、电气工程师、机械工程师
连接字符串的方法。
允许您存储信息,以便在整个程序中重复使用
允许您根据条件做出决定。
谁开发了德拉瓦尔喷嘴
伊迪丝·克拉克
古斯塔夫·德拉瓦尔
爱迪生
亚历山大·格雷厄姆·贝尔
谁发明了第一个彩虹灯泡
伊迪丝·克拉克
本杰明·富兰克林
克劳德·香农
爱迪生
提交
Score:
只需获取结果dom元素并用新的Score更新内容即可
document.getElementById('userScore').innerHTML = `Score: ${result}`;
- 您不需要提交-我使用preventDefault和submit事件,而不是单击
- 您需要将值转换为数字(我使用
)+
- 你需要在所有检查过的收音机上循环
- 您不能有重复的ID
window.addEventListener(“加载”,函数(){//
document.getElementById(“form1”).addEventListener(“提交”,函数(e){//提交时
e、 preventDefault();//取消提交
结果=0;
[…document.queryselectoral(“.answer:checked”)]//所有选中的收音机
.forEach(rad=>result+=+rad.value);//添加它们的数值
document.getElementById(“userScore”).innerHTML=result;
})
})
测验:
哪个是机械工程
研究、设计和应用使用电、电子和电磁的设备、装置和系统。
电脑类
利用工程物理、工程数学和材料科学原理设计、分析、制造和维护机械系统的研究
野生动物研究
尼古拉·特斯拉是谁
塞尔维亚裔美国发明家、电气工程师、机械工程师
连接字符串的方法。
允许您存储信息,以便在整个程序中重复使用
允许您根据条件做出决定。
谁开发了德拉瓦尔喷嘴
伊迪丝·克拉克
古斯塔夫·德拉瓦尔
爱迪生
亚历山大·格雷厄姆·贝尔
谁发明了第一个彩虹灯泡
伊迪丝·克拉克
本杰明·富兰克林
克劳德·香农
爱迪生
提交
分数:
简而言之:
button
notsubmit
,因为后者会刷新页面,并且不会执行js功能parseInt()
将值从字符串解析为int函数resultScore(){
结果=0;
var ans1=parseInt(document.querySelector('input[name=“choice1”]:checked')?document.querySelector('input[name=“choice1”]:checked')。值:0);
var ans2=parseInt(document.querySelector('input[name=“choice2”]:checked')?document.querySelector('input[name=“choice2”]:checked')。值:0);
var ans3=parseInt(document.querySelector('input[name=“choice3”]:checked')?document.querySelector('input[name=“choice3”]:checked')。值:0);
var ans4=parseInt(document.querySelector('input[name=“choice4”]:checked')?document.querySelector('input[name=“choice4”]:checked')。值:0);
结果=ans1+ans2+ans3+ans4;
const score=document.querySelector(“.score”);
score.innerHTML=`score:${result}`;
}
测验:
哪个是机械工程
研究、设计和应用使用电、电子和电磁的设备、装置和系统。
电脑类
利用工程物理、工程数学和材料科学原理设计、分析、制造和维护机械系统的研究
野生动物研究
尼古拉·特斯拉是谁
塞尔维亚裔美国发明家、电气工程师、机械工程师
连接字符串的方法。
允许您存储信息,以便在整个程序中重复使用
允许您根据条件做出决定。
谁开发了德拉瓦尔喷嘴
伊迪丝·克拉克
古斯塔夫·德拉瓦尔
爱迪生
亚历山大·格雷厄姆·贝尔
谁发明了第一个彩虹灯泡
伊迪丝·克拉克
本杰明·富兰克林
克劳德·香农
爱迪生
提交
分数:
- 请不要对多个元素使用相同的ID。取而代之的是使用名称来获取所有的无线电元素;然后循环并检查变量是否已检查并获取值李>
- 将值解析为整数,因为从元素中获取值时,它们是字符串
- (与计算部分无关)但作为一种良好的做法,如果您有结束标记,请同时使用开始标记(请参阅html中的标签标记)李>