首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在没有jQuery的情况下在Javascript中添加和删除类

如何在没有jQuery的情况下在Javascript中添加和删除类
EN

Stack Overflow用户
提问于 2014-11-04 21:41:01
回答 6查看 176.2K关注 0票数 82

我正在寻找一种快速和安全的方式来添加和删除没有jQuery的html元素的类。

它也应该在早期的IE (IE8和更高版本)中工作。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-05-07 03:47:14

以下3个函数适用于不支持classList的浏览器

代码语言:javascript
复制
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/

票数 53
EN

Stack Overflow用户

发布于 2015-04-16 02:50:52

为了将来的友好性,我推荐使用polyfill/shim作为classList的第二个建议:https://developer.mozilla.org/en-US/docs/Web/API/Element/classList#wrapper

代码语言:javascript
复制
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!');
}
票数 28
EN

Stack Overflow用户

发布于 2014-11-04 21:47:40

从IE10开始可以使用classList,如果可以的话,可以使用它。

代码语言:javascript
复制
element.classList.add("something");
element.classList.remove("some-class");
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26736587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档