@crhgfdqtrlauh7j

Как получить полное имя класса по его началу?

У body есть несколько классов:

<body id="top" class="home test fontsize100">

Как получить полное имя класса по его началу?
В данном случае, нужно получить fontsize100 по его началу, т.е. fontsize.
  • Вопрос задан
  • 205 просмотров
Решения вопроса 3
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
Приделайте к classList функцию поиска. Например:
DOMTokenList.prototype['find'] = function (tokenPart) {
        return [].map.call(this, function (_token) {
            if (_token.search(tokenPart) >= 0) {
                return _token;
            }
            return null;
        })[0];
    };


Соответственно, использование:
document.body.classList.find('abc'); // Вернёт null
document.body.classList.find('fontsize'); // Вернёт fontsize100
document.body.classList.find('font'); // Вернёт fontsize100
document.body.classList.find('size'); // Вернёт fontsize100
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
Получаем один класс:

const className = Array
  .from(element.classList)
  .find(n => n.startsWith(classNamePrefix));

Получаем все, что есть:

const classNames = Array.prototype.filter.call(
  element.classList,
  n => !n.indexOf(classNamePrefix)
);
Ответ написан
Комментировать
wisgest
@wisgest
Не ИТ-специалист
Без новомодного classList:
(RegExp("\\b" + ClassNameBegin + "\\S*").exec(document.body.className) || [])[0]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@RastaZ
Примерно так!
$('body[class*="fontsize"]') //Значение атрибута содержит указанный текст
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы