javascript - 当复选框 == true 时,Javascript 增加 [i]
问题描述
我想从仅选中的复选框中为 div 提供 ID。例如,我有 5 个复选框,每次未选中复选框时,循环应将所有即将选中的复选框增加 1。
function saveData() {
for (let i = 0; i <= 4; i++) {
document.getElementsByClassName('cb')[i].id = 'id' +i;
let id_active = document.getElementById('id' + i);
if (id_active.checked === true) {
let div_id = document.getElementsByClassName('div')[i].id = 'div' + i;
document.getElementsByClassName('div')[i].innerText = div_id;
}
if (id_active.checked === false) {
i += 1;
}
}
}
<input type="checkbox" class="cb" checked>
<input type="checkbox" class="cb" checked>
<input type="checkbox" class="cb">
<input type="checkbox" class="cb" checked="">
<input type="checkbox" class="cb">
<br>
<br>
<button onclick="saveData()">Check</button>
<div class="div"></div>
<div class="div"></div>
<div class="div"></div>
所以在这种情况下,第三个 div 应该得到 id="4" 但在未选中复选框后循环停止。如何为所有即将到来的 [i] 增加 i + 1 并且在第一个之后不停止循环checkbox.checked === false
?结果应如下所示:
解决方案
这是我认为你想要的结果。你需要第二个柜台。
function saveData() {
let j=0;
for (let i = 0; i <= 4; i++) {
console.log(i);
document.getElementsByClassName('cb')[i].id = 'cb'+ i;
let id_active = document.getElementById('cb' + i);
if (id_active.checked === true) {
let div_id = document.getElementsByClassName('cb')[i].id;
console.log(div_id);
document.getElementsByClassName('div')[j].innerText = div_id;
j+=1;
}
}
}
推荐阅读
- node.js - 在nodejs mysql async/await中运行多个查询
- azure-functions - InvalidSignature:令牌的签名无效 - Azure 函数
- javascript - 浏览器和邮递员中的错误 401 未授权 ok
- javascript - 从自定义类型创建列表/数组
- python - 使用 opencv 保存裁剪的视频
- json - 创建一个字符串来调用带有角度 html 文件中的变量的 json 对象
- linux - 将多个 excel 文件合并到一个 excel 工作簿中,但使用 bash 脚本将不同的工作表合并
- python - 为什么我可以用 int(s[0]) + int(s[1]) 而不是 int(s[0] + s[1]) 添加数字?
- php - 根据 Woocommerce 中购物车中的运输类别价格项目更改运输类别
- html - 带有一个条件选项的两个 Select 元素(下拉菜单)