Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Изменение class css (https://javascript.ru/forum/events/10323-izmenenie-class-css.html)

skit 28.06.2010 15:14

Изменение class css
 
Люди добрые помогите пожалуйста!!! 4ый час сделать пытаю всё уже переры -ничего не выходит((((
Есть страница со списком элементов. Каждому элементу присваивается класс.

<style>
.maker1 {
color: red;
}

.maker2{
color: blue;
}

.maker3{
color: black;
}
</style>


<ul>
   <li class="maker1">товар</li>
   <li class="maker2">товар</li>
   <li class="maker1">товар</li>
   <li class="maker3">товар</li>
   <li class="maker3">товар</li>
   <li class="maker2">товар</li>
</ul>



И есть второй список - производители

<ul>
   <li><a href=# >maker1</a></li>
   <li><a href=# >maker2</a></li>
   <li><a href=# >maker3</a></li>
   <li><a href=# >maker4</a></li>
</ul>


Как мне по клику на производителя поменять значение background соответствующего класса????? Перерыл кучу инфы везде пишут как поменять потоко стиль текущего элемента. А мне нужно именно класса чтобы товары этого производителя подсвечивались! Заранее все спасибо!

Skipp 28.06.2010 15:18

skit,
используй getElementsByClassName и затем у полученных объектов меняй их стили.

skit 28.06.2010 16:13

Сделал!!:dance: :dance: :dance:
Спасибо огромное!!!!! Хоть памятник тебе поставь!:)

Skipp 28.06.2010 16:17

skit,
Только смотри, этот метод не кроссбраузерный, вот решение.

skit 28.06.2010 16:31

Я так и сделал. Всё работает ОК.
Теперь вот думаю о другом.......
Если кликаешь по производителю - товары подсвечиваются - всё ОК!!! Но вот если кликаешь по другому производителю подсвечиваются новые товары и старые тоже.
Как бы сбросить у них background не подскажешь...???

Skipp 28.06.2010 16:33

skit,
Получи все элементы и сделай им тот цвет который был в самом начале, а потом уже подсвечивай те которые надо.

skit 28.06.2010 16:59

так у меня по каждой ссылке(производителю) разный класс передается функции-подсвечивания.......

Skipp 28.06.2010 17:08

skit,
если у тебя все списки в ul и больше ul на странице не используется, тогда можешь так.

var uls = getElementsByTagName('ul'), lis = new Array();
for(var i = 0; i<uls.length; i++)
 lis = lis.concat(uls[i].getElementsByTagName('li'));
for(var i = 0; i<lis.length; i++)
 lis[i].style.backgroundColor = "#FFF";


или проще:
var lis = document.getElementsByTagName('li'));
for(var i = 0; i<lis.length; i++)
 lis[i].style.backgroundColor = "#FFF";

skit 28.06.2010 18:00

иииххааа!!)))
Теперь вообще всё работает!!! Спасибо огромно, что бы я без тебя делал!!??))))


Часовой пояс GMT +3, время: 11:28.