2016-11-04 191 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