Javascript el.classList未定义

Javascript el.classList未定义,javascript,css,dom-events,Javascript,Css,Dom Events,我试图在单击链接后将一个类添加到纯JS中的div中(在本例中,链接具有id#switchlogin)。当我在console.log我的元素中单击时,我能够在对象中看到它当前在其类列表中有两个名称。但是,当我console.log元素.classList时,我收到一个“未定义”的消息。我不确定为什么我收到未定义的,为什么我不能添加我的新类名 问题将在此处重新创建: 以下是我的HTML的一部分: <div class="sign_in modal">

我试图在单击链接后将一个类添加到纯JS中的div中(在本例中,链接具有id
#switchlogin
)。当我在console.log我的元素中单击时,我能够在对象中看到它当前在其
类列表中有两个名称。但是,当我
console.log元素.classList
时,我收到一个“未定义”的消息。我不确定为什么我收到未定义的,为什么我不能添加我的新类名

问题将在此处重新创建:

以下是我的HTML的一部分:

   <div class="sign_in modal">

      <h1>Get Started!</h1>

      <form action="" method="get">

        <input type="text" name="fname" placeholder="Name" required>
        <input type="text" name="email" placeholder="Email" required>
        <input type="password" name="password" placeholder="Password" required>
        <input type="submit" value="Submit" class="submit">

      </form>

      <h3><a href="#" id="switchLogin">Been Here Before?</a></h3>
    </div>

signIn
文档的结果。GetElementsByCassName('sign_in modal')
-
GetElementsByCassName
返回一个集合-因此您必须引用所需的索引:

console.log(signIn[0].classList);

演示:

document.getElementsByClassName返回元素的“类似数组”的集合,即使只有一个元素具有该类名。要使用document.getElementsByClassName访问元素,可以使用数组语法

例如,logIn=document.getElementsByClassName('log_in')[0]

要向该元素添加类吗


document.getElementsByClassName('log_in')[0].className+=“foo”

哦,好的。但现在,当我尝试使用.push添加我的新类时,我收到一个错误,该错误表示它不是一个函数`var classes=signIn[0].classList;类。推(“滑出”);`导致
未捕获类型错误:classes.push不是一个函数(…)
?@AngelinaBethoney在这里阅读更多关于类列表的内容:如果您使用的是
addEventListener()
,则没有理由使用
(e.target | e.srcElement)
。只要使用
e.target
。好的,太棒了。我使用e.srcElement是因为我读到IE不支持e.target。谢谢你的提示
console.log(signIn[0].classList);