Как получить доступ к свойствам стиля псевдоэлементов с помощью jQuery?

Для контекста это является продолжением более раннего вопроса . Вместо того, чтобы копать через cssRules , я хотел бы основывать логику на селекторах jQuery, которые ищут эффекты этих правил.

Приведенные свойства по умолчанию

 .commentarea .author:before { background-image: url(http://...); background-position: -9999px -9999px; /* ... */ } 

которые выборочно модифицируются, как в

 .author[href$="gbacon"]:before /* ... */ { content: ""; background-position: 0 -140px } 

как я могу выбрать псевдоэлементы, чьи соответствующие фоновые позиции имеют значения по умолчанию? Копирование селектора, как в

 GM_log("size = " + $(".commentarea .author:before").size()); 

ничего не соответствует. Попытка .siblings() с

 $(".commentarea .author") .map(function(i) { GM_log($(this) .siblings() .map(function (i) { return $(this).css("background-image") }) .get() .join(", ")) }); 

не производит none значений.

Для получения полной информации см. Живую страницу . Это возможно?

Вы не можете использовать :before и :after псевдоэлементов, подобных этому. Их цель – вставить содержимое до и после (соответственно) указанного вами селектора.

Пример использования:

HTML:

  Outer  Inner   

CSS:

 .a .b:before { content: "|Inserted using :before|"; } .a { color: blue; } .b { color: red; } 

Результат:

http://jsfiddle.net/mzcp6/

Случилось так, что текст |Inserted using :before| был вставлен раньше (ну, действительно, добавлен в) внутренний диапазон, потому что это был class b и потомок элемента classа a . В принципе :before и :after не выбирают; они изменяются.

Пример:

Это не работает должным образом:

HTML:

  

More text

More text

Inner

CSS:

 .a .b:before { text-size: 100px; } 

Ничего не произошло:

http://jsfiddle.net/bQ2ty/

РЕДАКТИРОВАТЬ:

:before недействительный селектор jQuery: http://api.jquery.com/category/selectors/

Я думаю, вам нужно будет использовать что-то другое, чем :before или попытаться извлечь исходное правило с помощью плагина jQuery: http://flesler.blogspot.com/2007/11/jqueryrule.html

Вот решение, использующее простой javascript:

 // Get the color value of .element:before var color = window.getComputedStyle( document.querySelector('.element'), ':before' ).getPropertyValue('color'); // Get the content value of .element:before var content = window.getComputedStyle( document.querySelector('.element'), ':before' ).getPropertyValue('content'); 
  • Можно ли установить порядок укладки псевдоэлементов ниже их родительского элемента?
  • Вертикально центрирующее содержимое: до /: после псевдоэлементов
  • Почему: до и: после псевдоэлементов работать с элементами `img`?
  • :: перед выпуском порядка псевдоэлементной укладки
  • В чем разница между псевдоclassом и псевдоэлементом в CSS?
  • Interesting Posts

    ListView getChildAt возвращает null для видимых детей

    Как установить размер текста текстового вида динамически для разных экранов

    Какова цель сериализации в Java?

    Самый простой способ обслуживания статических данных вне сервера приложений в веб-приложении Java

    Каково ключевое слово forSome в Scala?

    Показать Загрузка анимации во время загрузки данных в другой stream

    Вычислить неделю месяца в .NET.

    Как «монтировать» раздел в Windows 7?

    Я продолжаю получать ошибку ” не существует”

    Строка не работает

    Должен ли я использовать «Дамп памяти» или «Дамп памяти ядра»?

    Как установить текст панели инструментов и цвет стрелки назад

    Как проверить, использует ли C ++-компилятор стандарт IEEE 754 с плавающей запятой

    Изменились правила deMorgan

    В C # Winforms есть способ поместить пунктирную границу вокруг всех элементов управления и показать точки захвата при выборе определенных элементов управления во время выполнения?

    Давайте будем гением компьютера.