Javascript 活动菜单选项卡
这段代码有我丢失的错误吗?这应该行得通,但不行。我用JavaScript和jQuery尝试了所有不同的版本,似乎它没有针对列表元素 var a=document.querySelectorAllul; 对于var i=0;长度=a.长度;i++{ a[i].onclick=函数{ var b=document.querySelectorli.active; 如果b{ b、 classList.removeactive; } a[i].classList.addactive; }; } 保险商实验室{ 显示器:flex; 弯曲方向:行; 列表样式:无; 对齐项目:居中; 李{ 保证金权利:1.875雷姆; 填充:0 1rem; 字体大小:0.875rem; 文本对齐:居中; 光标:指针; a{ 文字装饰:无; 颜色:黑色; 字体大小:粗体; } &:悬停{ 底部边框:3倍纯色$橙色; } } } .主动{ 背景颜色:灰色; 底部边框:3倍纯色$橙色; } ``` 您不需要在HTMLID属性中添加。对于css来说,这只是为了区分目标属性Javascript 活动菜单选项卡,javascript,Javascript,这段代码有我丢失的错误吗?这应该行得通,但不行。我用JavaScript和jQuery尝试了所有不同的版本,似乎它没有针对列表元素 var a=document.querySelectorAllul; 对于var i=0;长度=a.长度;i++{ a[i].onclick=函数{ var b=document.querySelectorli.active; 如果b{ b、 classList.removeactive; } a[i].classList.addactive; }; } 保险商实
还要注意,您没有在处理程序中捕获正确的索引。您应该在某个时候使用它。正如@mathk所说,在html正文中,更改为 现在请意识到,由于这是一个唯一的id,您实际上可以简化代码以使用document.getElementById而不是document.querySelectorAll,并且必须遍历1的数组:
var a = document.getElementById("ul"); //instead of a = document.querySelectorAll("#ul")
然后直接对a执行任何操作。我试图复制和修改您的代码,下面是您的错误 html选择器: 您需要从中删除 从ul获得孩子 要从ul html组件获取子元素数组,需要指定[0]。子元素 一个简单的控制台。loga[0]。子级将显示结果 事件列表器 我建议您在简单的javascript中使用addEventListener,就像这样一个[I].addEventListenerclick函数{ 更改活动子项 使用addEventListener时,可以通过this.classList将调用onClick事件的对象作为目标,如下所示 测验 保险商实验室{ 显示器:flex; 弯曲方向:行; 列表样式:无; 对齐项目:居中; 李{ 保证金权利:1.875雷姆; 填充:0 1rem; 字体大小:0.875rem; 文本对齐:居中; 光标:指针; a{ 文字装饰:无; 颜色:黑色; 字体大小:粗体; } &:悬停{ 底部边框:3倍纯色$橙色; } } } .主动{ 背景颜色:灰色; 底部边框:3倍纯色$橙色; } var a=document.querySelectorAllul; console.loga[0]。子项 console.loga[0].children.length a=a[0]。子项 对于变量i=0;i