javascript - 计算每列jquery js中的选中复选框
问题描述
我发现这个漂亮的代码对我的任务来说几乎是完美的,但我需要计算列而不是行。
https://codepen.io/b00stup/pen/dzGYPW
$.each(attendance, function(name, days) {
var studentRow = $('tbody .name-col:contains("' + name + '")').parent('tr'),
dayChecks = $(studentRow).children('.attend-col').children('input');
dayChecks.each(function(i) {
$(this).prop('checked', days[i]);
});
});
有人知道如何更改 js 来计算列而不是行吗?
解决方案
您可以执行以下操作:
$('input[type="checkbox"]').change(function() { //Add event listener on checkboxes
var result = []; //Init the result variable
$('.student').each(function() { //Select the row ( class stunden ) and loop
$(this).find('input[type="checkbox"]').each(function(i) { //Find all checkbox on a row and loop
result[i] = result[i] || 0; //Init if index does not exist
result[i] += this.checked; // +1 if checked
})
})
console.log( JSON.stringify( result ) );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Udacity Attendance</h1>
<table>
<thead>
<tr>
<th class="name-col">Student Name</th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
<th>6</th>
<th>7</th>
<th>8</th>
<th>9</th>
<th>10</th>
<th>11</th>
<th>12</th>
<th class="missed-col">Days Missed-col</th>
</tr>
</thead>
<tbody>
<tr class="student">
<td class="name-col">Slappy the Frog</td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="missed-col">0</td>
</tr>
<tr class="student">
<td class="name-col">Lilly the Lizard</td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="missed-col">0</td>
</tr>
<tr class="student">
<td class="name-col">Paulrus the Walrus</td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="missed-col">0</td>
</tr>
<tr class="student">
<td class="name-col">Gregory the Goat</td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="missed-col">0</td>
</tr>
<tr class="student">
<td class="name-col">Adam the Anaconda</td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="attend-col"><input type="checkbox"></td>
<td class="missed-col">0</td>
</tr>
</tbody>
</table>
推荐阅读
- express - 从其他机器访问 webpack DevServer 子 URL 时出现 ERR_SSL_PROTOCOL_ERROR
- javascript - 如何在 React Native 中引用卡片组件中的按钮?
- shopify - 在某些页面上禁用某些 Shopify 应用
- python - 绘制用户定义的函数
- python - 在 pygame 中对一组图像进行 blit
- python - 如何通过 Python 访问共享的 Google Drive 文件?
- r - 使用 httr / R 访问 RapidAPI 时出现问题 - 状态:401
- python - 重新连接后订阅者没有收到消息
- r - 尝试从包含不同类型文件(即 png、tif、rds)文件的目录在 R 上创建数据框
- find - Ctrl+F 底层实现