Javascript 无法读取未定义的属性add
我正在努力改变信仰Javascript 无法读取未定义的属性add,javascript,Javascript,我正在努力改变信仰 var target = $(this).attr('href') $(target).addClass('active'); 使用javascript let target=this.getAttribute('href') 目标位置为“#表3” target.classList.add('active') 结果无法读取未定义的属性add function tabControl() { const tabs = document.querySelector('.t
var target = $(this).attr('href')
$(target).addClass('active');
使用javascript
let target=this.getAttribute('href')
目标位置为“#表3”
target.classList.add('active')代码>
结果无法读取未定义的属性add
function tabControl() {
const tabs = document.querySelector('.tabs');
if (!isHidden(tabs)) {
const tabItems = tabs.querySelectorAll('a');
for (const tabItem of tabItems) {
tabItem.addEventListener('click', function(event) {
event.preventDefault();
let target = event.target.getAttribute('href'),
tabs = closest(this, '.tabs');
buttons = tabs.querySelectorAll('a'),
item = closest(tabs, '.tabbed-content').querySelector('.item');
buttons[0].classList.remove('active');
item.classList.remove('active');
this.classList.add('active');
target.classList.add('active');
});
}
任何帮助/解释都将不胜感激
html
您好,来自tab1
您好,来自表2
您好,第三页
您的代码如下所示:
const yourElem = document.querySelector('yourSelector');
yourElem.classList.add('yourClassName')
javascript中的经典方式如下所示:
this.className = this.className + " active";
this
在此上下文中指的是什么?target
是一个字符串(let target=this.getAttribute('href')
),没有.classList
属性该代码在列表中锚的单击处理程序上执行,您想更改href指向的元素的类吗?然后您可以这样做:document.querySelector(target.classList.add('active')代码>获取目标在当前代码中是可以的,除非您已将事件委托给祖先元素。在这种情况下,您需要let target=event.target.getAttribute('href')代码>。对于上下文,这指的是单击“上述操作似乎不起作用”的标记。我已经更新了我的问题,包括我的职能机构的if声明。提前感谢:)
this.className = this.className + " active";