2015-10-09 2 views
-5

Почему этот код не работает? Я думаю, что я делаю какую-то глупую ошибку.Что имеется в моем коде

document.addEventListener("DOMContentLoaded", function() { 
 
    var text = "Planing"; 
 
    document.getElementsByTagName("div").innerHTML = text; 
 
});
<div id="demo" class="eg"></div>

+0

"Почему этот код не работает?" Как этот код должен работать? – MLeFevre

+0

Вы можете попробовать, переключив getElementsByTagName на getElementsById и пометьте «демо» вместо этого. Это может помочь. – kdweber89

+0

https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName – j08691

ответ

4

getElementsByTagName возвращает коллекцию всех элементов согласования (<div> с в этом случае) на странице/DOM, чтобы выбрать сначала использовать элемент обозначения массива с нулевым индексом.

document.addEventListener("DOMContentLoaded", function() { 
 
    var text = "Planing"; 
 
    document.getElementsByTagName("div")[0].innerHTML = text; 
 
});
<div id="demo" class="eg"></div>

Если вы хотите, чтобы выбрать первый элемент, вы можете использовать document.querySelector('div');

Если вы хотите, чтобы выполнить какую-то операцию на всех выбранных элементов, необходимо перебрать их.

var allDivs = document.getElementsByTagName("div"); 

for (var i = 0; i < allDivs.length; i++) { 
    allDivs[i].innerHTML = 'Div ' + i; 
} 
+0

большое спасибо. Я думал, что использую один тег, чтобы этого не требовалось. спасибо .. – akash

+0

почему getElementById не работает здесь https://jsfiddle.net/ushqasq7/1/? – akash

+1

@akash Проверьте обновленную скрипту, https://jsfiddle.net/tusharj/ushqasq7/2/, это потому, что, поскольку jsfiddle включает скрипт на странице, я выбрал опцию 'no wrap', если вы выберете ее для' onLoad' или 'contentLoaded', скрипт добавляется внутри соответствующего обработчика – Tushar

2

getElement сек ByTagName, как следует из названия возвращает массив элементов (даже если есть только один). Перед применением текста вам необходимо получить доступ к первому.

document.addEventListener("DOMContentLoaded", function() { 
 
    var text = "Planing"; 
 
    document.getElementsByTagName("div")[0].innerHTML = text; 
 
});
<div id="demo" class="eg"></div>

+0

Я не копировал и не копировал вставить. Я нажал на «экземпляр фрагмента, чтобы ответить» на вопрос OP и исправил его ... Я только что понял, после обновления страницы, что кто-то другой избил меня, чтобы сначала отправить другой ответ. – Matheus208

Смежные вопросы