getElementsByClassName(className) возвращает ноль

Что делать, если мне нужно вставить какое-либо значение в элемент страницы новой вкладки в расширении Chrome?

Я использую:

document.getElementsByClassName("quotes").innerHTML = Quotes[x];

в newtab-script.js страница, но она показывает эту ошибку в консоли:

Uncaught TypeError: Cannot set property 'innerHTML' of null

Моя страница содержит div с классом по имени quotes но когда я предупреждаю это:

document.getElementsByClassName("quotes")

Результат null,

Мой код в форме:

window.onload = function abc (){ 
  alert(document.getElementById('a'));    
  document.getElementById('a').innerHTML ="ishaan"; 
}

Я импортирую файл сценария на html-страницу, которая переопределяет новую вкладку Google Chrome. Мой сценарий находится в файле сценария.

2 ответа

Если есть несколько предметов с одинаковым именем класса

var quoteElems=document.getElementsByClassName('quotes')
for(var i=0;i<quoteElems.length;i++){
quoteElems[i].innerHTML=Quotes[x]
}

Если есть один элемент, имеющий класс "кавычки"

document.getElementsByClassName("quotes")[0].innerHTML = Quotes[x];

Если вы используете jquery, то сделайте

 $(function(){
   $('.quotes').html(Quotes[x]);
 });
Другие вопросы по тегам