Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Изменять свойство класса в css (https://javascript.ru/forum/dom-window/79794-izmenyat-svojjstvo-klassa-v-css.html)

Сергей Ракипов 26.03.2020 14:01

Изменять свойство класса в css
 
Простая функция и не понимаю почему не работает
let themeBlue = document.querySelector("#theme_blue");
let theme = document.querySelector(".theme");

themeBlue.onclick = themeBlueFunct;

function themeBlueFunct (){
	a.style.color = "blue";
}


по клику должен поменяется цвет, но не меняется.

рони 26.03.2020 14:02

Сергей Ракипов,
что такое a?
Цитата:

Сообщение от Сергей Ракипов
a.style.color


Сергей Ракипов 27.03.2020 06:18

Цитата:

Сообщение от рони (Сообщение 521783)
Сергей Ракипов,
что такое a?

let a = document.getElementsByTagName("a");
let themeBlue = document.querySelector("#theme_blue");
let theme = document.querySelector(".theme");

themeBlue.onclick = themeBlueFunct;

function themeBlueFunct (){

    a.style.color = "blue";
}


забыл дописать вот так было

рони 27.03.2020 07:38

Цитата:

Сообщение от Сергей Ракипов
getElementsByTagName

это список элементов, нужно выбрать необходимый или пройти циклом по всем элементам.
a[0].style.color = "blue";

Сергей Ракипов 27.03.2020 08:49

Цитата:

Сообщение от рони (Сообщение 521803)
это список элементов, нужно выбрать необходимый или пройти циклом по всем элементам.
a[0].style.color = "blue";

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

рони 27.03.2020 09:12

Цитата:

Сообщение от Сергей Ракипов
то есть это нужно цикл писать?

да

Сергей Ракипов 27.03.2020 10:30

Цитата:

Сообщение от рони (Сообщение 521805)
да

Я пока не очень хорошо понимаю циклы
и делаю так

let themeGreen = document.querySelector("#theme_green");
let theme = document.querySelectorAll(".theme");

themeGreen.onclick =themeGreenFunct;

function themeGreenFunct (){
	theme.style.color = "green";
}

в css класс .theme присутствует

но все равно не срабатывает

рони 27.03.2020 10:41

Цитата:

Сообщение от Сергей Ракипов
но все равно не срабатывает

Цитата:

Сообщение от Сергей Ракипов
querySelectorAll

Цитата:

Сообщение от рони
это список элементов, нужно выбрать необходимый или пройти циклом по всем элементам.

:-?

Сергей Ракипов 27.03.2020 10:45

Цитата:

Сообщение от рони (Сообщение 521811)
:-?

То есть везде нужно цикл
Просто я думал что


querySelector возьмет первый

А

querySelectorAll пройдется по всем

как то не логично.

А как цикл написать что бы он прошелся по всем элементам

Сергей Ракипов 27.03.2020 10:51

Так пробую, не получается

function themeGreenFunct (){
	for(i=0; i<theme.length; i++){
	theme.style.color = "green";
	}
	
}

рони 27.03.2020 13:05

Сергей Ракипов,
theme[i].style.color = "green";
function themeGreenFunct (){
    let theme = document.querySelectorAll(".theme");
	for(let i=0; i<theme.length; i++){
	theme[i].style.color = "green";
	}
}

Сергей Ракипов 27.03.2020 14:21

Отлично все сработало, спасибо :)


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