Что такое функция hasClass с простым JavaScript? - PullRequest
256 голосов
/ 23 февраля 2011

Как вы работаете в jQuery hasClass с обычным старым JavaScript? Например,

<body class="foo thatClass bar">

Какой способ JavaScript спрашивать, если <body> имеет thatClass?

Ответы [ 13 ]

1 голос
/ 11 мая 2015

Эта функция hasClass работает в IE8 +, FireFox и Chrome:

hasClass = function(el, cls) {
    var regexp = new RegExp('(\\s|^)' + cls + '(\\s|$)'),
        target = (typeof el.className === 'undefined') ? window.event.srcElement : el;
    return target.className.match(regexp);
}
1 голос
/ 03 сентября 2014

Что ж, все вышеприведенные ответы довольно хороши, но вот небольшая простая функция, которую я выбрал. Это работает довольно хорошо.

function hasClass(el, cn){
    var classes = el.classList;
    for(var j = 0; j < classes.length; j++){
        if(classes[j] == cn){
            return true;
        }
    }
}
0 голосов
/ 05 мая 2015

Что вы думаете об этом подходе?

<body class="thatClass anotherClass"> </body>

var bodyClasses = document.querySelector('body').className;
var myClass = new RegExp("thatClass");
var trueOrFalse = myClass.test( bodyClasses );

https://jsfiddle.net/5sv30bhe/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...