2016-11-04 3 views
0

Was kann ich tun, wenn ich einen Wert in ein Seitenelement eines neuen Tabs innerhalb einer Chrome-Erweiterung einfügen muss?getElementsByClassName (className) gibt null zurück

Ich verwende:

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

in newtab-script.js Seite, aber es zeigt diesen Fehler in der Konsole:

Uncaught TypeError: Cannot set property 'innerHTML' of null 

Meine Seite enthält eine div mit einer Klasse mit dem Namen quotes aber wenn ich diese alarmieren :

document.getElementsByClassName("quotes") 

Das Ergebnis t ist null.

Mein Code ist in der Form:

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

ich meine Skript-Datei in einer HTML-Seite zu importieren, die neuen Tab Seite Google Chrome außer Kraft setzt. Mein Skript befindet sich in der Skriptdatei.

+0

"zeigt einige Verletzung Fehler in der Konsole" verdammt schwer, nur den Fehler hier einfügen – madalinivascu

+0

Uncaught TypeError: Kann die Eigenschaft 'innerHTML' von Null – Maverick

+0

nicht setzen und Sie haben es Anführungszeichen [x] ist null – madalinivascu

Antwort

0

Wenn mehrere Elemente sind mit gleichen Klassennamen

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

Wenn sich einzelne Artikel mit Klasse 'zitiert'

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

+0

Es gibt nur eine Klasse und die Klasse wird als Null angezeigt. Ist dies eine andere Möglichkeit, dies in Extensions zu tun? – Maverick

+0

Verwenden Sie 'alert (quoteElems.length)' zu prüfen, ob das erforderliche Element vorhanden ist oder nicht. Es wird die Nummer des Elements mit der Klasse 'Anführungszeichen' angezeigt. –

+0

Mein letztes Snippet wird an einer einzelnen Klasse funktionieren, wenn es existiert, probier es aus. Andernfalls musst du es dynamisch erstellen. –

0

wenn Sie jQuery verwenden Sie dann

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

auch dann funktioniert es nicht.Es kann kein Element gefunden werden. – Maverick

+0

Sie haben kein Element mit der Klasse .Qotes auf der Seite – madalinivascu

+0

verwenden Sie Ajax? – madalinivascu