JavaScript添加和删除不起作用的类

JavaScript添加和删除不起作用的类,javascript,html,css,Javascript,Html,Css,我正在尝试创建一个子菜单,该子菜单仅在您单击主菜单中的项目时显示。我已经做了一段代码,但似乎不起作用,只是没有变化。我花了很长时间试图让它也工作,但不能,如果有人能帮助我,我将非常感激。我试图避免使用jquery,希望它能够一次打开一个子菜单 这是我的js代码: function hasClass(element, cls) { return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1; } func

我正在尝试创建一个子菜单,该子菜单仅在您单击主菜单中的项目时显示。我已经做了一段代码,但似乎不起作用,只是没有变化。我花了很长时间试图让它也工作,但不能,如果有人能帮助我,我将非常感激。我试图避免使用jquery,希望它能够一次打开一个子菜单

这是我的js代码:

function hasClass(element, cls) {
    return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}

function menuSlider(subMenu) {
    var el = document.getElementById(subMenu);
    /* Reset all submenu classes */
    document.getElementById("dashboardSubMenu").className = "subMenu dashboardSubMenu";
    document.getElementById("pagesSubMenu").className = "subMenu pagesSubMenu";
    document.getElementById("mediaSubMenu").className = "subMenu mediaSubMenu";
    document.getElementById("styleSubMenu").className = "subMenu stylesSubMenu";
    document.getElementById("settingsSubMenu").className = "subMenu settingsSubMenu";

    if (hasClass(el, 'selected') === false) {
        /* Open submenu */
        document.getElementById(subMenu).className = el.className + ' selected';
    }
}
我有一个JSFIDLE代码

第一个问题是在JSFIDLE中,您的代码位于页面的onload事件上,并且由于您使用的是
onclick
方法,因此您的函数必须是全局函数。因此,从放置代码的下拉列表中进行更改

那么您在其中一个
id
s中有一个错误的名称

document.getElementById("styleSubMenu").className
应该是

document.getElementById("stylesSubMenu").className
(在
样式中缺少
s

这会导致语法错误,并且检查类的代码从未到达


的演示中,第一个问题是在JSFIDLE中,您的代码位于页面的onload事件上,并且由于您使用了
onclick
方法,因此您的函数必须是全局函数。因此,从放置代码的下拉列表中进行更改

那么您在其中一个
id
s中有一个错误的名称

document.getElementById("styleSubMenu").className
应该是

document.getElementById("stylesSubMenu").className
(在
样式中缺少
s

这会导致语法错误,并且检查类的代码从未到达


的演示中,第一个问题是在JSFIDLE中,您的代码位于页面的onload事件上,并且由于您使用了
onclick
方法,因此您的函数必须是全局函数。因此,从放置代码的下拉列表中进行更改

那么您在其中一个
id
s中有一个错误的名称

document.getElementById("styleSubMenu").className
应该是

document.getElementById("stylesSubMenu").className
(在
样式中缺少
s

这会导致语法错误,并且检查类的代码从未到达


的演示中,第一个问题是在JSFIDLE中,您的代码位于页面的onload事件上,并且由于您使用了
onclick
方法,因此您的函数必须是全局函数。因此,从放置代码的下拉列表中进行更改

那么您在其中一个
id
s中有一个错误的名称

document.getElementById("styleSubMenu").className
应该是

document.getElementById("stylesSubMenu").className
(在
样式中缺少
s

这会导致语法错误,并且检查类的代码从未到达


演示在

排序现在添加了我的js代码。由于缺少图像链接,您的小提琴已完全损坏。我认为您正在重新发明轮子。。。似乎有效。注意,
getElementById(“样式子菜单”)
!=
getElementById(“stylesSubMenu”)
问题在于@j08691所说的,修复打字错误,它就会工作。现在添加了我的js代码。由于缺少图像链接,你的小提琴完全坏了。我想你是在重新发明轮子。。。似乎有效。注意,
getElementById(“样式子菜单”)
!=
getElementById(“stylesSubMenu”)
问题在于@j08691所说的,修复打字错误,它就会工作。现在添加了我的js代码。由于缺少图像链接,你的小提琴完全坏了。我想你是在重新发明轮子。。。似乎有效。注意,
getElementById(“样式子菜单”)
!=
getElementById(“stylesSubMenu”)
问题在于@j08691所说的,修复打字错误,它就会工作。现在添加了我的js代码。由于缺少图像链接,你的小提琴完全坏了。我想你是在重新发明轮子。。。似乎有效。注意,
getElementById(“样式子菜单”)
!=
getElementById(“stylesSubMenu”)
问题在于@j08691所说的,修复错误,它就会工作。