我正在寻找一种快速和安全的方式来添加和删除没有jQuery的html元素的类。
它也应该在早期的IE (IE8和更高版本)中工作。
发布于 2017-05-07 03:47:14
以下3个函数适用于不支持classList
的浏览器
function hasClass(el, className)
{
if (el.classList)
return el.classList.contains(className);
return !!el.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'));
}
function addClass(el, className)
{
if (el.classList)
el.classList.add(className)
else if (!hasClass(el, className))
el.className += " " + className;
}
function removeClass(el, className)
{
if (el.classList)
el.classList.remove(className)
else if (hasClass(el, className))
{
var reg = new RegExp('(\\s|^)' + className + '(\\s|$)');
el.className = el.className.replace(reg, ' ');
}
}
https://jaketrent.com/post/addremove-classes-raw-javascript/
发布于 2015-04-16 02:50:52
为了将来的友好性,我推荐使用polyfill/shim作为classList的第二个建议:https://developer.mozilla.org/en-US/docs/Web/API/Element/classList#wrapper
var elem = document.getElementById( 'some-id' );
elem.classList.add('some-class'); // Add class
elem.classList.remove('some-other-class'); // Remove class
elem.classList.toggle('some-other-class'); // Add or remove class
if ( elem.classList.contains('some-third-class') ) { // Check for class
console.log('yep!');
}
发布于 2014-11-04 21:47:40
从IE10开始可以使用classList,如果可以的话,可以使用它。
element.classList.add("something");
element.classList.remove("some-class");
https://stackoverflow.com/questions/26736587
复制相似问题