5

我已经使用这个 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;
    }
}

但是我不能再使用它了,想知道是否可以通过它们的值名称找到它们,假设我有 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。这可能吗?

4

2 回答 2

12

尝试querySelectorAll

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

jQuery 中不需要,纯原版 JavaScript!

于 2013-06-05T10:24:21.020 回答
1

请考虑使用 jQuery 和这样的语句来检查所有值为“chk2”的复选框:

$("input:checkbox[value='chk2']").attr("checked", true);

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

于 2013-06-05T10:23:57.220 回答