2016-11-04 55 views
0

如果我必须在Chrome扩展的新选项卡的页面元素上插入一些值,该怎么办?getElementsByClassName(className)返回null

我使用:

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

newtab-script.js页,但它显示在控制台此错误:

Uncaught TypeError: Cannot set property 'innerHTML' of null 

我的页面包含一个名为quotesdiv但是当我提醒这个:

document.getElementsByClassName("quotes") 

The resul t是null

我的代码的格式为:

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

我输入我的脚本文件,在其中覆盖谷歌Chrome的新标签页一个HTML页面。我的脚本在脚本文件上。

+0

”在控制台显示一些违规错误“该死的很难只是在这里粘贴错误 – madalinivascu

+0

未捕获的类型错误:无法设置属性'innerHTML'为空 – Maverick

+0

并且您拥有它行情[x]为空 – madalinivascu

回答

0

如果存在具有相同的类名

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];

+0

只有一个类,它的类显示为空。是否有其他方式来扩展 – Maverick

+0

使用'alert(quoteElems.length)'来检查需要的元素是否存在。它将显示包含类引号的元素的数量 –

+0

如果存在,我的最后一个片段将在单个类上工作,请尝试使用它。否则,您必须动态创建它。 –

0

,如果你使用jquery然后做

$(function(){ 
    $('.quotes').html(Quotes[x]); 
}); 
+0

即使它不工作。它无法找到元素。 – Maverick

+0

你没有类的元素。页面上的引用 – madalinivascu

+0

你使用ajax吗? – madalinivascu