从事件中获取classList

时间:2016-05-17 13:19:03

标签: javascript

我有一个简单的JS事件:

var changeAddress = document.getElementsByClassName('modal-open');

if (changeAddress.length) {
    var a = 0;
    while (a < changeAddress.length) {
        changeAddress[a].addEventListener('click', function () {
            console.log(this); // Here i want to get classList
            document.querySelector('.modal').removeAttribute('hidden');
        });
        a++;
    }
}

如何从this获取classList?

没有必要从this或投掷classList获取它。我只想获取触发了哪个事件的元素的所有类名。谢谢!

1 个答案:

答案 0 :(得分:1)

event handler callback中,您可以获得event作为参数。 使用'event'参数,我们可以使用className或classList获取类列表。

  1. 使用classList event.target.classList将直接返回数组中的类名列表。

  2. 使用className event.target.className将返回类名的字符串表示形式,并将空格作为分隔符。 所以你可以使用event.target.className.split("/\s")来返回类名数组。

  3. 我们可以使用className或classList。 旧版浏览器支持className,但修改(添加,切换,删除...)类是单调乏味的 任务,因此引入了classList并且易于使用。

    classList属性为not widely supported yet

    请参阅Code with classList does not work in IE?以获取跨浏览器支持