jQuery с использованием подстановочного знака *, чтобы изменить цвет всех дочерних элементов - PullRequest
3 голосов
/ 05 февраля 2012

Мне нужно изменить цвет всех дочерних элементов (полная глубина) данного селектора.

Во время выполнения я не знаю точную HTML-разметку дочерних элементов, ... только обертывающие элементыкласс.

Я пробовал следующее, но безрезультатно

$('.cat_title *').each( function () { $(this).css('color', color ); });
$('.cat_title *').css('color', color+'!important' );
$('.cat_title *').css('color', color );

Любой указатель в правильном направлении будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 05 февраля 2012

Первая и третья версии вашего кода работают в той степени, в которой они добавляют атрибут style к элементам, но это не отменяет установки, заданной в таблице стилей, которая имеет более высокий приоритет в каскаде.

Вторая версия не работает, так как jQuery не поддерживает добавление спецификатора !important, см. Как подать заявление! Важно с помощью .css ()?

Вы могли бы рассмотреть возможность использования кода, который добавляет класс к элементам, класс, который используется в стиле страницы, с !important при желании.

Ни один из подходов не влияет на цвет текста внутри элемента, если текст не заключен во внутренний элемент (и такой эффект не запрашивается в описании проблемы).

0 голосов
/ 05 февраля 2012
$('.cat_title').children().css('color', '#000000 !important');

Должен это сделать.

Несмотря на то, что я не люблю использование свойства! Important.

...