alienworkshop
@alienworkshop

Не работает селектор getElementsByClassName, не работает createElement. Как решить эту проблему?

Пытаюсь выполнить простой код, не работает:
var newDiv = document.createElement('div');
newDiv.className = 'myclass';
newDiv.id = 'myid';
newDiv.innerHTML = 'Привет, мир!';

Более того innerHTML через селектор getElementById работает, а через getElementsByClassName – нет.
document.getElementById("myid").innerHTML = "Text"; //работает
document.getElementsByClassName("myclass").innerHTML = "Text"; //не работает

Подскажите, пожалуйста, как решить эту проблему.
  • Вопрос задан
  • 2814 просмотров
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
1. После создания элемента его нужно вставить в документ (только нужно быть уверенным, что элемент, в который вы вставляете, уже присутствует в DOM). Например:

var newDiv = document.createElement('div');
...
document.body.appendChild(newDiv);

2. В имени метода getElementsByClassName не смущает множественное число?)

document.getElementsByClassName("myclass")[0].innerHTML = "Text";
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DimaLepel
@DimaLepel
Извините, в комментарий код вставить не смог, поэтому пишу как ответ на вопрос. Извините еще раз. Вот сам код и помогите найти ошибку что бы работало для нескольких элементов одного класса.
<html>
<head>
  <meta charset="utf-8">
  <title>Название документа</title>
  <script>

    function changeColor(newColor) {

      var elem = document.getElementsByClassName("para1")[0];
       elem.innerHTML  = newColor;
     
    }

  </script>
</head>
<body>
 
  <p class="para1">Какой-то текст</p>
  <button onclick="changeColor('blue')">синий</button>
  <button onclick="changeColor('red')">красный</button>

<p class="para1">Какой-то текст</p>
  
 
</body>
</html>
Ответ написан
Ваш ответ на вопрос

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

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