Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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_Class_Button_Checkbox - Fatal编程技术网

使用类取消选中Javascript中的单选按钮

使用类取消选中Javascript中的单选按钮,javascript,class,button,checkbox,Javascript,Class,Button,Checkbox,以下是我的两个收音机按钮: <input type="radio" name="sex" id="Button1" class="Button"/> <input type="radio" name="sex" id="Button2" class="Button"/> 它会取消选中按钮2。但是我想通过使用类取消选中它 当函数包含: document.getElementsByClassName('Button').checked = false; 它不会取消选

以下是我的两个收音机按钮:

 <input type="radio" name="sex" id="Button1" class="Button"/>

 <input type="radio" name="sex" id="Button2" class="Button"/>
它会取消选中按钮2。但是我想通过使用类取消选中它

当函数包含:

document.getElementsByClassName('Button').checked = false;
它不会取消选中按钮2

为什么?解决方案是什么


谢谢。:)

getElementsByClassName
返回节点列表(类似于数组),而不是元素

如果要对节点列表中的每个元素执行某些操作,则必须循环执行该操作,并对列表中的每个项目执行该操作

var node_list = document.getElementsByClassName('Button');
for (var i = 0; i < node_list.length; i++) {
    node_list[i].checked = false;
}
var node_list=document.getElementsByClassName('Button');
对于(变量i=0;i
document.getElementsByClassName返回该类名元素的节点列表(类似于这些元素的数组)。因此,您应该循环浏览它并更改每个元素的选中状态

对于一般方法(您可以有任意多个复选框),请使用以下代码

var allButtons = document.getElementsByClassName("Button");
for (i=0; i<allButtons.length; i++) {
    allButtons[i].checked = false;
}

getElementsByClassName()
返回一个集合(类似于数组)。所以你真的必须这么做

document.getElementsByClassName('Button')[1].checked = false;

但是你不能确定你的
按钮2
是数组中的第二个元素,如果你有更多的元素使用class
按钮,你必须迭代class元素

   var elements=document.getElementsByClassName('Button');

    Array.prototype.forEach.call(elements, function(element) {
       element.checked = false;
    });

您正在调用
document.getElementsByClassName('Button')。checked=false应该是
文档的时间。getElementsByClassName('Button')[1]。选中=false


getElementsByClassName()
返回一个数组

函数取消选中(){
document.getElementsByClassName('Button')[1]。checked=false;
}


两个按钮具有相同的类名,您希望代码如何工作?您必须给它一些东西来区分所需的按钮。它不会返回数组。它返回一个节点列表。如果试图对其调用数组方法,则会出现错误。@Quentin:Edited。我只是想把事情简化。无论如何,编辑。:)
var allButtons = document.getElementsByClassName("Button");
allButtons[0].checked = false;
allButtons[1].checked = false;
document.getElementsByClassName('Button')[1].checked = false;
   var elements=document.getElementsByClassName('Button');

    Array.prototype.forEach.call(elements, function(element) {
       element.checked = false;
    });