2 回答
TA贡献1921条经验 获得超9个赞
您可以循环遍历所有checkedBoxes使用.forEach()方法,然后使用.closest("tr")查找最接近该复选框的表行,然后获取该行的列值。
var checkedBoxes = document.querySelectorAll('input[type="checkbox"]:checked');
checkedBoxes.forEach(chk => {
chk.closest("tr").querySelectorAll('td:not(:first-child)').forEach((td, index) => {
console.log(index, td.innerHTML)
});
})
:not(:first-child)这里需要注意的一个重要事项是in的使用.querySelectorAll('td:not(:first-child)')。这样做是为了我们可以忽略每行中的第一列,因为这是一个复选框列,我们的逻辑不需要它的内容。
演示:
document.getElementById("btnTest").addEventListener("click", function() {
var checkedBoxes = document.querySelectorAll('input[type="checkbox"]:checked');
checkedBoxes.forEach(chk => {
chk.closest("tr").querySelectorAll('td:not(:first-child)').forEach((td, index) => {
console.log(index, td.innerHTML)
});
})
});
<button id="btnTest">Get Value</button>
<table id="tblBrowse">
<thead>
<tr role="row">
<th>
<input type="checkbox" id="chkboxBrowseSelectAll" value="">
</th>
<th>Order No</th>
<th>Ship To</th>
<th>Sold To</th>
</tr>
</thead>
<tbody>
<tr role="row" class="odd">
<td>
<input type="checkbox">
</td>
<td class="sorting_1">1959-01</td>
<td>123</td>
<td>456</td>
</tr>
<!-- And lots more of the same thing -->
</tbody>
</table>
- 2 回答
- 0 关注
- 111 浏览
添加回答
举报