如果选中输入,则将 class 应用到 <body>,而不应用 jQuery

If input is checked, apply class to <body>, without jQuery

我有一个新手问题。我有这个 'hamburger' 菜单:http://alexe.ro/beta/(右上角),如果它被选中,我想在 <body> 中添加一个 class,如果可能的话。

问题是我只想使用 javaScript,而不是 jQuery。 如果我知道如何做到这一点,它将对我的(非常有限的)javaScript 知识有所帮助。

这是代码:

<input type="checkbox" class="menuToggle" id="menu-toggle-right" data-toggle="right">

提前致谢。

使用设置属性。

function myfunction() {
  var a = document.getElementsByTagName('body'); 
  a[0].setAttribute("class", "red");
}
.red {
background:red;}
<input type="checkbox" id="ctrl" onChange="myfunction();">

检测是否已在事件处理程序中检查复选框中的 onchange

在该复选框内,您检查 checked 属性 以查看它是否已被选中,然后使用 classList 添加或删除您想要的 class。

document.getElementById('menu-toggle-right').onchange = function() {
    var method = this.checked ? 'add' : 'remove';
    document.body.classList[method]('my-class');
}
body.my-class { background-color:#f44; }
<input type="checkbox" class="menuToggle" id="menu-toggle-right" data-toggle="right">