Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Добавить класс элементам (https://javascript.ru/forum/events/59575-dobavit-klass-ehlementam.html)

MouseOver 17.11.2015 10:47

Добавить класс элементам
 
Нужно реализовать добавление класса всем элементам с классом .hreview, если в url страницы есть определенные цифры

var url = window.location.pathname;
    function give_me_badcom(){       
	if (url.replace(/[^0-9]/gim,'') == 10950)   
    {
   	var elem = document.querySelectorAll("div.hreview");
   
   	for (var i = 0; i < elem.length; i++) {
       elem[i].style.opacity = "0.5";
    
		}
    }
}


Получилось добавить стиль, а при добавлении класса проблемы...
Функция вызывается в <body onload="give_me_badcom()">
Спасибо:help:

Mess4me 17.11.2015 11:11

MouseOver,
так?
var url = window.location.pathname;
    function give_me_badcom(){       
	if (url.replace(/[^0-9]/gim,'') == 10950)   
    {
   	var elem = document.querySelectorAll("div.hreview");
   
   	for (var i = 0; i < elem.length; i++) {
       elem[i].style.opacity = "0.5";
       elem[i].classList.add('newClass')
    
		}
    }
}

MouseOver 17.11.2015 11:31

Пытался делать так же - не работает.

Mess4me 17.11.2015 11:35

MouseOver,
а html можете приложить?

MouseOver 17.11.2015 12:09

view-source:http://reviewscompanies.ru/10950-zao-tael-otzyvy.html

Mess4me 17.11.2015 12:12

MouseOver,
так Вам надо чтобы какое название класса добавлялось?

MouseOver 17.11.2015 12:31

Нужно чтобы к <div class="hreview"> добавилось <div class="hreview newClass"> стили работают а классы нет...

Mess4me 17.11.2015 12:39

MouseOver,
дело в том для того чтобы добавить в div c классом hreview , он должен существовать на момент добавления в него нового класса , а он не существует :)

MouseOver 17.11.2015 12:41

Но я же вызываю функцию после загрузки страницы :blink: <body onload="give_me_badcom()">

Mess4me 17.11.2015 12:46

MouseOver,
а Вы посмотрите через F12 , есть ли у Вас хоть что то с классом hreview.
В эту строку получаете пустой массив
Цитата:

Сообщение от Mess4me
05
    var elem = document.querySelectorAll("div.hreview");

, поэтому ничего и не происходит

Mess4me 17.11.2015 12:55

Mess4me,
хотя сейчас проверил и уже работает , у Вас к дивам всё нормально подобавлялось !

MouseOver 17.11.2015 13:08

Что то не заметил чтобы работало... в div только один класс hreview
Не понимаю почему стили добавляются а класс нет.
Так же пробовал через document.getElementsByClassName - ничего

Mess4me 17.11.2015 13:18

MouseOver,
может проблема в стилях? Потому что с дивами всё ОК)

MouseOver 17.11.2015 16:50

Добавил id="check" к <div class="hreview">
Изменил код.
var url = window.location.pathname;
    function give_me_badcom(){       
	if (url.replace(/[^0-9]/gim,'') == 10950)   
    {
   	var elem = document.querySelector("#check");
    elem.classList.add("goal");   
    }
}


Работает только с первым div'ом, на странице их больше 20, как для всех сработать?

Mess4me 17.11.2015 17:01

MouseOver,
так ID может быть только один - нельзя так )

MouseOver 17.11.2015 17:01

Все заработало...я тупанул, Mess4me спасибо большое!

Mess4me 17.11.2015 17:02

MouseOver,
:dance:


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