javascript - 复选框值返回并添加到字符串
问题描述
我正在尝试在表格中取一行复选框,对于表格中的每个 TD,它需要检查复选框是否已勾选,是否为 1,否则为 0。我需要一个 for 循环,我将能够遍历每个 td,确定它是否被检查,如果是,则将 1 添加到二进制字符串,否则将 0 添加到二进制字符串。
这应该以每个 tr 都有自己的唯一二进制字符串结束,这些字符串来自已选中或未选中的复选框。我还想为每个 tr 设置自己的唯一 ID。
下面的代码是我到目前为止所拥有的,但我假设我走错了方向。
任何帮助表示赞赏。谢谢
[ { ID: 000, binary: 0101010101 } ]
function generate(){
$("#actionTable>tbody").children("tr").each(function(i, rowitem){
$(rowitem).children("td").each(function(index, item){
if (index == 0){
var amid = $(item).data("amid");
}
else {
//Handle checkbox
var checked = $(item.firstChild).prop('checked')
}
});
});
}
解决方案
您可以为此使用嵌套的 map()。外部地图迭代行
内部映射迭代每个输入的 checked
属性,转换为数字,然后转换为字符串,然后加入数组以获得最终字符串。
我不知道 html 是什么样的,所以现在只使用了每行的行索引
const res = $('tr').map((i, el) => {
const binary = $(el).find(':checkbox').map((_, inp) => {
return `${+inp.checked}`;
}).get().join('');
return { index: i, binary};
}).get()
console.log(res)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="checkbox"></td>
<td><input type="checkbox" checked></td>
<td><input type="checkbox"></td>
<td><input type="checkbox"></td>
</tr>
<tr>
<td><input type="checkbox" checked></td>
<td><input type="checkbox"></td>
<td><input type="checkbox" checked></td>
<td><input type="checkbox"></td>
</tr>
</table>
推荐阅读
- c# - 如何使用 Blazor 和 NetCore 5 在电子邮件中将 razor 组件作为正文发送?
- ios - iOS:继承不同的xib文件
- java - 如何使用此类创建实例?
- jquery - 使用 laravel/ajax 一次生成多个文档
- python - Openpyxl:只读模式,如何获取超链接
- python - 如何在情节中显示OCC
- c++ - 使用 Boost.Spirit.Qi 捕获字符串直到行尾
- c - 制作基数排序 __uint128_t 数组的问题
- xml - 当 XML 文档类型描述中没有足够的约束描述时,会发生什么以及它看起来如何?
- python - Python 并行化简单的 For 循环