使用javascript按值查找复选框

使用javascript按值查找复选框,javascript,checkbox,Javascript,Checkbox,我已经使用这个JavaScript找到了我需要的复选框并进行了检查 <script type="text/javascript"> function checkAll(c) { var chks = document.getElementsByName(c.name); for (var i = 0; i < chks.length; i++) { chks[i].checked = c.checked; } } 函数checkAll

我已经使用这个JavaScript找到了我需要的复选框并进行了检查

<script type="text/javascript">
function checkAll(c) {
    var chks = document.getElementsByName(c.name);
    for (var i = 0; i < chks.length; i++) {
        chks[i].checked = c.checked;
    }
}

函数checkAll(c){
var chks=document.getElementsByName(c.name);
对于(变量i=0;i

但是我不能再使用它了,我想知道我是否可以通过它们的值名找到它们,假设我有3个复选框,它们是这样呈现的

<input name="2" type="checkbox" value="chk2" onclick="checkAll(this)">
<input name="3" type="checkbox" value="chk2" onclick="checkAll(this)">
<input name="4" type="checkbox" value="chk3" onclick="checkAll(this)">


如果我随后用value=“chk2”选中其中一个复选框,则应同时选中这两个复选框,但不选中值等于chk3的复选框。这是可能的吗?

< P>请考虑使用jQuery和这样的语句,它检查所有带有“CHK2”值:

的复选框。
编辑:更优雅的方法是使用ViewModel。然后,您可以将复选框绑定到单个数据实体,并且只要基础数据的值发生更改,复选框就会被选中/取消选中。您可以通过knockout.js实现这一点,而且实现起来很容易()

试试
querySelectorAll

var chks = document.querySelectorAll("input[type='checkbox'][value='chk2']");

不需要jQuery,纯香草JavaScript

您可以遍历所有复选框并比较它们的值。没有专门的函数按值查找表单元素。@Magnus。将name 3的属性值更改为value=“chk3”,name=4 value=“chk4”。给出了相同的值。如果我想支持IE7,我应该怎么做?@FelixKling go
针对它们,并比较值是否相关?
var chks = document.querySelectorAll("input[type='checkbox'][value='chk2']");