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>代码>。