Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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 使用名称设置所有单选按钮_Javascript - Fatal编程技术网

Javascript 使用名称设置所有单选按钮

Javascript 使用名称设置所有单选按钮,javascript,Javascript,我想选择所有具有特定名称的单选按钮。目前,我这样做: var点=0,大小=4; 功能检查答案(答案,q){ 如果(答案)//如果答案正确。 { 积分+=10分; }否则//如果答案是错的。 { 点数-=10; } document.getElementById(“分数”).innerHTML=“您有”+分+”分。”;//显示分数 while(size--)document.getElementsByClassName(“test”+q)[size].disabled=“true”; 尺寸=4;

我想选择所有具有特定名称的单选按钮。目前,我这样做:

var点=0,大小=4;
功能检查答案(答案,q){
如果(答案)//如果答案正确。
{
积分+=10分;
}否则//如果答案是错的。
{
点数-=10;
}
document.getElementById(“分数”).innerHTML=“您有”+分+”分。”;//显示分数
while(size--)document.getElementsByClassName(“test”+q)[size].disabled=“true”;
尺寸=4;
}
问题1
答复

答复
正确答案
答复
问题2 答复
正确答案
答复
答复

还没有得分

使用
queryselectoral()
并通过关闭name属性来提供正确的CSS选择器。
getRadsByName()
函数将查找所有
标记,这些标记的
名称属性设置为提供给函数的值。您可以根据需要定制查询

//等待domready
document.addEventListener(“DOMContentLoaded”,函数(docE){
//我们输入的名称
var answerRadioNames=[“第一”、“第二”];
//函数查找具有特定名称的所有输入
函数getRadsByName(名称){
var qs=“输入[name=”+name+”];
var rad=document.queryselectoral(qs);
返回rad;
}
//函数使所有找到的输入初始化它们的句柄
函数radNameInitializer(名称){
[]forEach.call(getRadsByName(name),radInitializer);
}
//函数将单击处理程序附加到输入
函数径向化器(currRad){
currRad.addEventListener(“单击”,radClickHandler);
}
//单击调用禁用程序的handler
函数radClickHandler(e){
[].forEach.call(getRadsByName(e.target.name),disabler);
}
//禁用已单击收音机的功能
功能禁用器(radToDisable){
radToDisable.disabled=true;
}
//附上所有的名字
answerRadioNames.forEach(radNameInitializer);
});

好的,我找到了答案。嗯,我真正搜索的东西是
getElementsByName()

我通过一点编码找到了一个。我认为这是一个好结果,它适合我。任何人都可以评论添加/更正/改进

函数GimmeElementsByName(名称) { var FinalOutput=[],x=document.getElementsByTagName('input')。长度,i=0;//供以后使用。 而(x-) { if(document.getElementsByTagName('input')[x].name==name)//应用于所有名为qSomething的输入。 { FinalOutput[i]=document.getElementsByTagName('input')[x];//包含所有匹配输入的数组。 i++; } } 返回最终输出; } //例如使用 函数Hello() { 变量大小=4; while(size--)GimmeElementsByName('q1')[size].disabled=“true”; }
这是一个示例使用:



您的
checkAnswer()
函数缺少一个关闭
}
。我想这就是为什么你的代码可能“停止工作”。至少,当我复制你的代码片段时,我看到的就是这个。@zero298你是对的。要解决这个问题吗:丹妮,用更简单的方法?如果可能,没有事件处理程序。我唯一的问题是如何将所有名为“q1”的输入设置为disabled=true。我对onClick的工作方式很满意。因此,我唯一需要的是一个自动填充输入的数组,我将使用该循环设置该数组。请将遍历DOM的结果缓存在一个变量中,而不是在循环的每个步骤中一次又一次地遍历。并考虑<代码> QueRealStudioAudio>代码>。