2015-11-05 3 views
0

Я хочу обновить css из множества классов объектов с тем же значением. Например:Как эффективно обновлять css на нескольких классах селектора в jquery

$("selector1").css("background-color", "#abc"); 
$("selector2").css("background-color", "#abc"); 
... 
$("selector50").css("background-color", "#abc"); 

Я использую рамки виджет с буквально сотни классов, CSS мне нужно обновить с несколькими функциями Jquery, вроде упрощенной визуализации ThemeRoller. В настоящий момент я просматриваю свой файл css и добавляю классы в массив javascript в своем коде, а затем пользователь может обновить css с помощью автоматически вызванной функции arrayOfSelectors.each(), когда они обновляют, например, <input type="color">.

Очень сложно вручную собрать все классы виджетов в массив. Есть ли более разумный способ сделать это?

+1

Поместите класс во все элементы '# selectorX' и используйте один селектор, чтобы захватить их все. Вы также должны поместить стиль в класс CSS и использовать 'addClass' вместо' css() ' –

+2

Использовать класс вместо использования встроенных стилей. А также используйте класс для всех общих элементов, на которых необходимо обновить стили. Или используйте иерархию DOM, если это возможно. – Tushar

+0

@Rory, вы имеете в виду 'arrayOfSelectors.each (addClass (" customCSS "))' и обновлять '$ (". CustomCSS "). Css()' когда пользователь меняет входы темы? – Escher

ответ

1

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

$(".commonClass").css("background-color", "#abc"); 

Или вы можете использовать запятую селекторов, как это так,

$("selector1,selector2,selector3").css("background-color", "#abc"); 

Другой вариант заключается в использовании атрибута начинается с выбора.

$("[id^=selector]").css("background-color", "#abc"); 

это выберет все элементы, идентификатор которых начинается с «селектора».

+0

'commonClass' это тогда. – Escher

0

с использованием разделенного запятыми нескольких селекторов. Пример:

$("selector1,selector2").css("background-color", "#abc")