javascript - 使用 JavaScript 启用或禁用多个复选框而不是列出所有复选框的有效方法?
问题描述
我想知道是否有更好的方法来一次启用/禁用多个复选框。在 html 中,我有两个单选按钮可以在所有头发选项和自定义头发选项之间进行选择,默认所有选项都禁用复选框,而自定义选项则启用它们。
到目前为止,这就是我所拥有的(可能看起来很愚蠢,我很抱歉),但我想知道是否有更有效的方法来解决这个问题?为了我自己,我想尽可能“小”地做到这一点,同时仍然易于阅读/理解。
function checkHaOp(){
if (document.getElementById("hairOptionAll").checked){
document.getElementById("hairAuburn").disabled = true;
document.getElementById("hairBlack").disabled = true;
document.getElementById("hairBlonde").disabled = true;
document.getElementById("hairBrown").disabled = true;
document.getElementById("hairRed").disabled = true;
document.getElementById("hairOther").disabled = true;
}
else if (document.getElementById("hairOptionCustom").checked){
document.getElementById("hairAuburn").disabled = false;
document.getElementById("hairBlack").disabled = false;
document.getElementById("hairBlonde").disabled = false;
document.getElementById("hairBrown").disabled = false;
document.getElementById("hairRed").disabled = false;
document.getElementById("hairOther").disabled = false;
}
}
最好使用javascript,因为我不知道jquery。
由于我仍在学习,因此我也很感激对事物的解释。
解决方案
你可以添加/使用像@NiettheDarkAbsol 这样的类然后类似的东西。
var inpck = document.getElementsByClassName("input-checkbox");
if (document.getElementById("hairOptionAll").checked) {
for(var i = 0; i < inpck.length; i++) {
inpck[i].disabled = true;
}
}
if (document.getElementById("hairOptionCustom").checked) {
for(var i = 0; i < inpck.length; i++) {
inpck[i].disabled = false;
}
}
现在轮到你重构这个了:D
推荐阅读
- html - 网格中的第 5 个容器没有像其他容器一样对齐 - 为什么?
- javascript - 关闭没有按预期工作。闭包是如何工作的?
- python - 如何获取 PySpark 数据框中最后 5 行的平均值
- python - 使用多边形网格的 UV 瓦片
- python-3.x - request.get_json() 返回 400 错误请求
- python - 如何直接使用在另一个python代码中读取多个输入的python代码?
- download - 如何在 Flutter 网页上编码和下载 png
- torch - torchtext - 内容处置错误 - download_from_url
- reactjs - 在 React Table 中,如何使用 state 分别更新每一行中的下拉值
- server - 监控通过Linux服务器中端口的请求数