2016-01-09 1 views
1

(Как) можно выбрать элементы на основе их атрибута стиля?Выбор по атрибуту стиля в угловом

Благодаря this question, мы знаем, что невозможно использовать чистый css.

Чтобы рассказать о проблеме, я даю свой конкретный случай: я хочу изменить цвет фона всех p и span s с цветом фона белый в div прозрачным.

Угловая какая-то услуга? Или что еще можно использовать?

+0

не использовать JQuery селекторы вообще. использовать углы удивительные директивы функций – sundar

+0

директивы пишут когда-нибудь использовать где угодно ни для чего – sundar

+0

Почему вы не можете использовать классы для этого? Попытка разобрать цвета из DOM возвращает разные форматы в разных браузерах. Предоставьте более подробную информацию о вашей конкретной проблеме. – charlietfl

ответ

0

window.getComputedStyle()

var divs = document.querySelectorAll('div'); 

[].slice.call(divs).forEach(function(div) { 
    var color = window.getComputedStyle(div, null).backgroundColor; 

    if (color === 'rgb(255, 255, 255)') { 
    div.style.backgroundColor = 'transparent'; 
    } 
}); 

Вам необходимо нормализовать цвета, поскольку различные браузеры возвращают его в различных форматах.

JSFiddle демо: https://jsfiddle.net/ebq6manb/1/

+0

вы не должны использовать это в angularjs – sundar

+0

@sundar, почему бы и нет? кажется, он решает проблему, хотя угловые не используются. Я до сих пор не знаю, можно ли его решить, используя угловые его «директивы» – Asqan

+0

@Asqan вы не можете использовать что-либо, чтобы решить проблему ur.so, если вы хотите сделать это по-своему, тогда почему вы пришли к angularjs, если вы собираетесь использовать угловое u должно делать это по угловому пути. Гугла не предназначена для выполнения подобных манипуляций с домом – sundar

-1

Вы можете захватить все блоки с помощью селектора, пропустить через них, использовать метод attr('style'), а затем сделать чек, чтобы узнать, какой цвет фона они есть.

Смежные вопросы