Javascript 活动菜单选项卡

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; }; } 保险商实

这段代码有我丢失的错误吗?这应该行得通,但不行。我用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来说,这只是为了区分目标属性


还要注意,您没有在处理程序中捕获正确的索引。您应该在某个时候使用它。

正如@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我猜这是因为你用错误的方式获取ul,应该是var a=document.getElementByIdul;或者var a=document.querySelectorAllul;是ID中的有效字符。但是,它确实会导致混淆。因此,这更像是一个实际约束,而不是技术约束。是的,我错过了ID键入,谢谢,就是这样。但是代码不起作用正确地说,我将其更改为:var li=document.getElementsByTagNameLI;for var I=0;I