Javascript loop
Javascript loop
本文关键字:loop Javascript 更新时间:2023-09-26
我有一个javascript片段,它遍历所有输入(表中的所有行),如果在一行中选中一个复选框,它就会选中所有行中的所有复选框。
实际上,我需要它在同一行中选中第二个复选框,而不是所有行,所以我需要编辑javascript片段,它会增加
//loop through all inputs
for(i = 0; i < inputs.length; i++)
<script type="text/javascript">
var mainchecked = false;
function checkAll() {
//get all input elements
var inputs = document.getElementsByTagName('input');
//if the box is being checked
if(!mainchecked) {
//loop through all inputs
for(i = 0; i < inputs.length; i++) {
//does it have autocheck?
if(inputs[i].className == 'autocheck') {
//then check the box!
inputs[i].checked = "checked";
}
}
mainchecked = true;
} else {
//box is being unchecked, uncheck everything
for(i = 0; i < inputs.length; i++) {
inputs[i].checked = "";
}
mainchecked = false;
}
}
</script>
不要循环所有输入,循环表行并处理每行中的输入。以下代码假设该行的控制复选框位于该行中的第一个输入中,并且该功能所应用的行中的所有其他复选框都将类设置为"autocheck";我将让您根据具体情况的需要对此进行修改(例如,您可能需要检查是否为type=="checkbox"
)。
我还没有测试过这个,但它应该给你足够的时间继续。
function checkAll(){
var _rows = document.getElementById("yourTableID").rows;
var i,
j,
isChecked,
inputs;
for (i=0; i < _rows.length; i++) {
inputs = _rows[i].getElementsByTagName("input");
isChecked = inputs[0].checked;
for (j=1; j < inputs.length; j++) {
if (inputs[j].className == "autocheck") {
inputs[j].checked = isChecked;
}
}
}
}
更新:刚刚在您的评论中看到,您似乎是从控制复选框的onclick
触发此功能的。如果是这样的话,那么你可以将对该复选框的引用传递给你的函数,然后只处理它所在的行,如下所示:
<input ... onclick="checkAll(this);" ...>
function checkAll(cb){
var _row = cb.parentNode.parentNode,
j,
isChecked = cb.checked,
inputs;
inputs = _row.getElementsByTagName("input");
for (j=0; j < inputs.length; j++) {
if (inputs[j].className == "autocheck") {
inputs[j].checked = isChecked;
}
}
}
谷歌"mdc-parentnode"了解更多信息。
相关文章:
- javascript/angularjs 将 String 与 number for loop 连接起来
- JavaScript for loop
- Native/$q Javascript For Loop Promise Resolve
- JavaScript Loop to setData method
- Javascript / Openlayers for loop不起作用
- javascript loop getElementById
- for loop inside another for loop javascript (jquery)
- Razor foreach loop and javascript
- JavaScript for loop "document.getElementById"
- Javascript Generic For Loop
- JavaScript For Loop - 执行终止条件
- javascript d3 selectAll transform to loop
- 在 for loop JavaScript 中添加数字
- TypedArray Set vs. Unrolled Loop (Javascript)
- 如何使用 for loop javascript 向 Firebase 添加数据
- 将存储在数组中的 url 传递给 window.open in for loop - Javascript
- Async AjaxCall in a for loop Javascript
- Prototype Library for if loop JavaScript
- Promise in while loop javascript
- 使用For Loop Javascript动态创建变量