Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2018, 15:39
Новичок на форуме
Отправить личное сообщение для abcde Посмотреть профиль Найти все сообщения от abcde
 
Регистрация: 04.02.2018
Сообщений: 2

цвет из массива
нужно при каждом клике по очереди взять цвет из массива , но при клике берется только последний цвет
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>HTML5</title>
</head>
<body>
<div>
<script>

function col(colors){
var colors = ["red" , "green", "blue"];
for (var i = 0; i < colors.length; i++) {
var a = document.getElementById("h");
a.style.color = colors[i];

}
}
</script>
</div>
<p id="h"> hello</p>
<input type="button" onclick="col()" value="click">
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2018, 16:01
Новичок на форуме
Отправить личное сообщение для KonstBessonov Посмотреть профиль Найти все сообщения от KonstBessonov
 
Регистрация: 18.01.2018
Сообщений: 7

Ну конечно. При одном запуске присваиваются все три цвета по очереди, при выходе из цикла всегда остается синий. Тут не цикл нужен, а переменная, которая хранит текущий цвет.

Типа так http://plnkr.co/edit/nr53yEX5N0L5OBJYifgR?p=preview
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2018, 16:07
Новичок на форуме
Отправить личное сообщение для abcde Посмотреть профиль Найти все сообщения от abcde
 
Регистрация: 04.02.2018
Сообщений: 2

понятно спасибо за помощь
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2019, 12:46
Новичок на форуме
Отправить личное сообщение для Viktor Shcherbyna Посмотреть профиль Найти все сообщения от Viktor Shcherbyna
 
Регистрация: 28.06.2019
Сообщений: 1

Сообщение от KonstBessonov Посмотреть сообщение
Ну конечно. При одном запуске присваиваются все три цвета по очереди, при выходе из цикла всегда остается синий. Тут не цикл нужен, а переменная, которая хранит текущий цвет.

Типа так http://plnkr.co/edit/nr53yEX5N0L5OBJYifgR?p=preview
А можно ли применить это к div ? Что бы стартовым цветом, был первый цвет из массива, а при нажатии кнопки менялся цвет фона блока на следующий.
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2019, 14:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Viktor Shcherbyna,
Вопрос по DOM
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2019, 04:14
Интересующийся
Отправить личное сообщение для Stownheidg Посмотреть профиль Найти все сообщения от Stownheidg
 
Регистрация: 09.08.2017
Сообщений: 16

<div></div>
<button id="change">Change color</button>

div{
  width: 50px;
  height: 50px;
  background: red;
  margin-bottom: 10px;
}

const colors = ['red', 'green', 'blue'],
div = document.querySelector('div');
let i = 0;
change.onclick = () => div.style.background = colors[++i % colors.length];
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обход многомерного массива с задержкой после каждого цикла Walk Общие вопросы Javascript 2 14.08.2017 16:17
изменить цвет фона и обратно... cesarr Events/DOM/Window 11 04.04.2017 14:19
как прописать условие чтоб менялся цвет региона при разном его количестве ??? maks777 Общие вопросы Javascript 0 20.09.2016 12:18
Сортировка массива по возрастанию другого массива. vas88811 Events/DOM/Window 4 12.01.2014 10:31
Как изменить цвет кнопки, чтобы когда я нажал, то цвет не пропадал? ntest Общие вопросы Javascript 1 31.07.2013 09:14