Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取未定义的属性add_Javascript - Fatal编程技术网

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";