Возможно ли в JS добавить к элементу html некоторые классы и удалить некоторые другие классы в одной строке? - PullRequest
2 голосов
/ 12 июля 2020

Интересно, есть ли какой-либо функциональный эквивалент строки some_element.classList.add("some_class", "some_other_class).remove("some_other_other_class").

И я знаю, что метод .toggle() может быть решением в некоторых случаях, но мне интересно, есть ли способ использовать именно .add() и .remove() в одной строке.

Ответы [ 2 ]

1 голос
/ 12 июля 2020

Вы можете сделать что-то подобное, чтобы добавить или удалить несколько классов.

const header = document.getElementById('header');

const addClasses = ['foo', 'bar', 'hello'];
const removeClasses = ['class1'];

header.className = header.className.split(' ')
                         .filter(c => !removeClasses.includes(c))
                         .concat(addClasses).join(' ');

// to show the classes on the #header element
document.body.innerHTML = header.className;             
<h1 id="header" class="class1 class2 class3"></h1>
1 голос
/ 12 июля 2020

Да, вы можете использовать метод classList.replace ()

element.classList.replace('some-class', 'new-class');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...