Javascript 将下拉框更改为测验单选按钮
这里是代码新手 我已经设法建立了一个表格,根据用户的选择汇总用户的分数。而且它有效 这是我的密码:Javascript 将下拉框更改为测验单选按钮,javascript,html,forms,Javascript,Html,Forms,这里是代码新手 我已经设法建立了一个表格,根据用户的选择汇总用户的分数。而且它有效 这是我的密码: 函数最终核心(圆形){ var=0; var选择值; var questions=document.getElementsByClassName(“问题”); var numOfQuestions=questions.length; for(var i=0;i{ //在函数体中,我们检索所有相关元素 //使用document.querySelectorAll(),传递CSS选择器 //提供给函数
函数最终核心(圆形){
var=0;
var选择值;
var questions=document.getElementsByClassName(“问题”);
var numOfQuestions=questions.length;
for(var i=0;i
你多大了?
19 - 26
27 - 36
37 - 40
41+
你们的关系状况如何?
单身,很兴奋能看到外面的一切。
最近单身,情绪崩溃。
有一些不经意的事情在进行中,而不是寻找任何太严重的事情。
在一段忠诚的关系中,只为LOL参加这个测验。
您的位置在哪里?
位置无关
伦敦/英国
欧洲
在别处
提交
此处得分
根据问题中的代码和问题描述,以及对问题的评论,我制定了以下解决方案。我所做的假设是:
元素转换为
元素,并且
元素的值确定总分选项
元素的值都是分数的数值等价物,以便在计算中更容易使用,因此value=“four”
已成为value=“1”
元素之前的textNode
节点已转换为
,以便可以将每个
元素的“组”视为一个组
的id
中删除了数字,这似乎基本上是不相关的,而在HTML 5中,以数字开头的id
是有效的,在历史上,通过CSS选择这样的id
是有问题的,因为数字需要显式转义
元素分配了name
属性,这是因为当结果存储在数据库中时,需要name
将值正确传递给服务器,并且
元素作为互斥组(因此一次只能从相关元素中选择一个
)必须分配名称
属性来标识该关系。因此,在操作之前将名称
添加到
,而不是依赖自动生成的名称
,这会或可能会导致服务器端存储问题,是有意义的//使用“const”将函数声明为常量;
//无法重新分配用常量声明的变量,
//如果变量是对象或数组,则
//该对象或数组的属性或内容可以
//将在以后更改/更新:
常量选择器RADIO=(选择器)=>{
//在函数体中,我们检索所有相关元素
//使用document.querySelectorAll(),传递CSS选择器
//提供给函数;然后该函数
//节点列表使用排列语法转换为数组:
const selects=[…document.querySelectorAll(selectSelector)],
//我们创建基本元素:
输入=document.createElement('input'),
label=document.createElement('label'),
span=document.createElement('span');
//设置所创建元素的类型:
input.type='radio';
//在这里,我们使用节点数组并对其进行迭代
//使用带有箭头的Array.prototype.forEach()数组
//功能:
选择。forEach(
//“sel”是对当前元素的引用
//从我们所处的元素数组中
//迭代:
(sel)=>{
//在这里,我们指定“name”属性的属性值
//元素的“groupName”作为
//我们正在创建的元素:
让groupName=sel.name,
//这里我们检索所有的子元素
//从当前元素中,使用
//元素。querySelectorAll()并再次创建
//具有扩展运算符的
//结果可编辑节点列表:
options=[…sel.querySelectorAll('option')],
//这里我们创建一个documentFragment(),以便
//可以同时附加创建的元素:
fragment=document.createDocumentFragment();
//这里我们再次使用Array.prototype.forEach()对
//元素数组:
options.forEach(
//“opt”(这些变量可以随意命名,所以
//只要是