【发布时间】:2020-12-29 15:14:45
【问题描述】:
我想知道是否有更好的方法来同时启用/禁用多个复选框。
在 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。
由于我仍在学习,因此我也很感激对事物的解释。
【问题讨论】:
-
添加一个
class=".."然后做getElementsByClassName("..").forEach(...) -
@NiettheDarkAbsol HTMLCollections 没有 forEach,您需要 qSA 或
for代替 -
@CertainPerformance 哎呀,完全正确。
querySelectorAll(".class_name_here").forEach(...) -
@AlwaysHelping 我无法让它工作,但这可能是我的错/我很笨而且有点匆忙。仅仅因为解释,我才认真考虑选择你的,他们非常好,乐于助人,我真的很感激他们。在我完成项目的 v1 后,我会修改这段特定的代码,如果/当我能弄清楚如何让你的工作正常工作时,我会将最佳答案改为你的,我确实更喜欢它,但另一个第一次尝试,所以我现在选择它。
-
@AlwaysHelping 是的,我看到了,在 sn-p 中也为我工作过,所以我把事情搞砸了。哦,天哪,好吧 okie dokie,如果那是你想做的。我想最好还是离开,以防其他人遇到与我类似的问题并想要选择/解释。
标签: javascript