我是javascript的新手,这个问题从一开始就困扰着我。当我得到DOM元素事件行为正常,但是当我尝试更改任何东西(比如类)时,它给了我" undefined不是一个函数"。
我不明白为什么,因为在同一时间console.log发出
<div class="nav-about menu" id="nav-about"></div>
HTML
<div class="nav-about menu" id="nav-about"></div>
JS
var link_one = document.getElementById("nav-about");
link_one.addEventListener("click", function(){
console.log(this);
this.addClass('special');
}, false);
我无法在任何地方找到答案。是的,jquery to addClass包含在head标签中。
答案 0 :(得分:2)
由于addClass
上没有this
属性,因此它是undefined
。
您可以在this.classList
上添加课程。
var link_one = document.getElementById("nav-about");
link_one.addEventListener("click", function(){
this.classList.add('special');
}, false);
答案 1 :(得分:1)
试
$(this).addClass('special');
因为你想使用jquery库,使用jquery库就像调用函数doSomething(this),而是使用$作为函数名