@olkhovich

Что не так с document.all?

Такое задание:
При щелчке по первой и третьей строке цвет букв должен меняться с чёрного на белый или с белого на чёрный, а фон – с жёлтого на синий или с синего на жёлтый. Так же должны меняться цвета третьей строки.
При щелчках по второй строке цвет букв на ней должен меняться с красного на белый и наоборот, а цвет фона - с белого на зелёный и наоборот.
С первой и третьей строкой все в порядке, а вторая не меняет ни цвет, ни фон.
В чем ошибка?
HTML:
<h2 id="one"  onclick=f1() >ДОСТУП К СВОЙСТВАМ И МЕТОДАМ </h2>
    <p name="two" onclick=f2()>Коллекция all</p>
    <div id="tree"  onclick=f3() > Метод getElementById() </div>

JS:
<script>
    flag1=true;
    flag2=true;
    flag3=true;
    function f1()
    {
      if(flag1)
      {
        document.getElementById("one").style.color="white"; 
        document.getElementById("one").style.background="blue";
        flag1=false;
      }
      else
      {
        document.getElementById("one").style.color="black";
        document.getElementById("one").style.background="yellow";
        flag1=true;
      }
    }
    function f2()
    {
      if(flag2)
      {
        document.all.bot.style.color = "white";
        document.all.bot.style.background = "green";
        flag2 = false;
      }
      else
      {
        document.all.bot.style.color = "red";
        document.all.bot.style.background = "white";
        flag2 = true;
      }
    }
    function f3()
    {
      if(flag3)
      {
        document.getElementById("tree").style.color="white"; 
        document.getElementById("tree").style.background="blue";
        flag3 = false;
      }
      else
      {
        document.getElementById("tree").style.color="black";
        document.getElementById("tree").style.background="yellow";
        flag3 = true;
      }
    }
</script>
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
function f2()
    {
      if(flag2)
      {
        document.all[4].style.color = "white";
        document.all[4].style.background = "green";
        flag2 = false;
      }
      else
      {
        document.all[4].style.color = "red";
        document.all[4].style.background = "white";
        flag2 = true;
      }
    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Не бывает такого свойства, как baclground да и document.all это не элемент, а коллекция элементов, чтобы применить стиль к элементам коллекции нужно эту коллекцию сначала обойти в цикле.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы