Первый плакат. Я пытаюсь изменить цвет фона после нажатия кнопки. Я пробовал несколько разных типов кода, и, похоже, согласованно то, что массив не повторяется ...

-3
goosey9 5 Апр 2021 в 23:46

3 ответа

Лучший ответ

Будьте осторожны, загружая ваш javascript-скрипт после кнопки в вашем HTML-коде, потому что в противном случае querySelector не найдет его!

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Background Colour Change</title>
    <link rel="stylesheet" href="new1.css">
</head>
<body>
    <button>Click me to change background colour.</button>
</body> 
<script src="new1.js"></script>
-3
Dharman 5 Апр 2021 в 21:05

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

i = (i+1) % color.length;
1
nbrix 5 Апр 2021 в 20:54

Итак, в Javascript массивы начинаются с нуля, поэтому цвет [0] красный, цвет [1] зеленый, а цвет [2] синий, когда вы говорите color.length, он вернет 3. поэтому цвет [3] не определен. потому что последний цвет заканчивается индексом 2. Также вы должны начать с i = -1, поскольку, когда вы начинаете с 0 и увеличиваете, 0 станет 1, поэтому вы пропустите первый цвет.

var color = ["red", "green", "blue"];
var i = -1;
document.querySelector("button").addEventListener("click", function () {
  i = i < color.length - 1 ? ++i : 0;

  document.querySelector("body").style.background = color[i];
});
1
Why u do dis 5 Апр 2021 в 20:59