javascript - 如何在选中或未选中复选框的基础上添加/删除项目?
问题描述
我在下面写了几行代码
var selectedFinal = [];
//On click check all records
$(document).on("click", "#completebatch,.commoncheckbox", function() {
var checkBoxCount = 0;
var selected = [];
$("#selected_students").empty();
$('#studentListBody input:checked').not(".disabled-check").each(function() {
var id = $(this).val();
if ($("#" + id).is(":checked")) {
checkBoxCount++;
selected.push(id);
} else {
checkBoxCount--;
selected.pop(id);
}
});
$("#allStudentIds").val($.unique(selected));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<thead>
<th><input onclick="checkenabledisable()" id="completebatch" type="checkbox"></th>
</thead>
<tbody>
<tr>
<td><input class="commoncheckbox disabled-check" value="578" type="checkbox" disabled=""></td>
<td>abc</td>
</tr>
<tr>
<td><input class="commoncheckbox" value="357" type="checkbox"></td>
<td>abc</td>
</tr>
<tr>
<td><input class="commoncheckbox" value="123" type="checkbox"></td>
<td>abc</td>
</tr>
</tbody>
</table>
我创建了带有复选框的 html 表,用户可以在其中取消选中或选中复选框。基于选中或未选中的复选框,我试图将选中的复选框的 id(值)推送到“选定”数组中。上面的代码没有添加该复选框的值。此外,当我尝试取消选中未从“选定”数组中删除 id 的复选框时。请帮忙!!!
解决方案
为什么不简单地在复选框上使用map()
和:get()
checked
var selectedFinal = [];
//On click check all records
$(document).on("click", "#completebatch,.commoncheckbox", function () {
selectedFinal = $('.commoncheckbox:checked').map((i,el) =>{
return $(el).attr('value')
}).get();
console.log(selectedFinal);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<thead>
<th><input onclick="checkenabledisable()" id="completebatch" type="checkbox"></th>
</thead>
<tbody>
<tr>
<td><input class="commoncheckbox disabled-check" value="578" type="checkbox" disabled=""></td>
<td>abc</td>
</tr>
<tr>
<td><input class="commoncheckbox" value="357" type="checkbox"></td>
<td>abc</td>
</tr>
<tr>
<td><input class="commoncheckbox" value="123" type="checkbox"></td>
<td>abc</td>
</tr>
</tbody>
</table>
推荐阅读
- reactjs - 在 react-draft-wysiwyg 编辑器中加载文本时出现问题
- python - string.punctuation 删除一个值
- version-control - 如何将更改从主分支中的待处理更改列表迁移到 perforce 中的另一个分支
- asp.net-web-api - 在 ASP.NET Core 中将准确的参数传递给 Web API
- react-native - 我可以在 FlatList (React Native) 中使用 FlatList 吗?
- android - 如何从库模块android中公开kotlin kapt
- javascript - 在java脚本中的任何对象数组中增加对象的重复值
- javascript - React 和 Axios 从 Node JS 服务器下载文件
- vue.js - 如何使用 github s3 同步操作将缓存控制设置为 max-age=0
- laravel - 试图获取非对象的属性“id”如何解决?