我有一个简单的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
获取它。我只想获取触发了哪个事件的元素的所有类名。谢谢!
答案 0 :(得分:1)
在event handler callback
中,您可以获得event
作为参数。
使用'event'参数,我们可以使用className或classList获取类列表。
使用classList :event.target.classList
将直接返回数组中的类名列表。
使用className :event.target.className
将返回类名的字符串表示形式,并将空格作为分隔符。
所以你可以使用event.target.className.split("/\s")
来返回类名数组。
我们可以使用className或classList。 旧版浏览器支持className,但修改(添加,切换,删除...)类是单调乏味的 任务,因此引入了classList并且易于使用。
但classList
属性为not widely supported yet
请参阅Code with classList does not work in IE?以获取跨浏览器支持