Задать вопрос
@AlexR0v

Как получить псевдоэлемент в JS?

Как можно получить доступ к псевдоэлементу в JavaScript ? Его нет в DOM - получается, что никак. Но очень нужно, структуру документа менять не могу. Нужен какой-то костыль.
  • Вопрос задан
  • 7086 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 2
wapster92
@wapster92 Куратор тега CSS
Нет из js никак не получить псевдоэлемент :before и :after. Но можно менять класс их родителю и в зависимости от этого класса изменять стили псевдоэлементов.
Ответ написан
origami1024
@origami1024
went out for a night walk
Зависит что с ним нужно делать, если содержимое менять, то можно через css переменную его задать. Саму переменную можно менять через js
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Prukdyi
let element = document.querySelector(".test");
let elementStyle = getComputedStyle(element, "::before")
console.log(elementStyle.backgroundColor);

Замечу что можно только получить значение пневмоэлементов, менять из значения к сожалению нельзя. Но так как вы знаете их свойства, то уже далее можно думать.
Ответ написан
Комментировать
@robothot
Можно найти элемент через обращение к document.styleSheets[0].cssRules
Найти нужный элемент, сравнить с искомым и присвоить какой нибудь перемнной, а потом так же обращаться и менять стили
Что то вроде:
for (let i = 0; i < document.styleSheets[0].cssRules.length; i++) {
    if (document.styleSheets[0].cssRules[i].selectorText === `.${class}::after`) {
        let icon = document.styleSheets[0].cssRules[i];
        break
    }
}
icon.style.opacity = '1'
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы