2016-08-08 9 views
0

EDITED: Ich habe hier Dutzende von Artikeln zu diesem Thema überprüft, aber ich kann das Problem einfach nicht in meinem Code finden: Die Zeile (unten kommentiert) gibt null zurück, obwohl ich erwarte, dass es das bestimmte Element zurückgibt, das ich oben geschaffen und hinzugefügt habe.getElementById (...) gibt null unerwartet zurück

element2 = document.createElement("button"); 
 
    element2.innerHTML = "-"; 
 
    element2.text = rowCounter; 
 
    element2.style.backgroundColor = 'white'; 
 
    element2.id = "kuerzer"+rowCounter; //rowCounter is an iterator variable 
 
    ell2.appendChild(element2); 
 
    console.log(document.getElementById(element2.id)); //returns null

Allerdings versuche ich nun dieses Element in einer anderen Funktion wie folgt zu finden:

function structureGantData(){ 
 
     var gantData = [[]]; 
 
     for(i=0; i<document.getElementById("myTable").rows.length; i++){ 
 
     console.log("schleife"); 
 
     gantData[i][0] = document.getElementById("kuerzer",(i+1)).text; //ISSUE

mir jemand helfen könnte? :-)

Vielen Dank!

Fabian

Antwort

0

Ich glaube, Sie wollten document.getElementById("kuerzer" + (i + 1)) statt document.getElementById("kuerzer", i + 1) in structureGantData anrufen.

+0

Danke für Ihren Beitrag! Ich rufe jetzt gantData [i] [0] = document.getElementById ("kuerzer" + (i + 1)). und erhalten die Fehlermeldung jstut.html: 272 Uncaught TypeError: Eigenschaft '0' von undefined kann nicht festgelegt werden. –

+0

, was darauf hindeutet, dass 'gantData [i]' nicht definiert ist; Stellen Sie sicher, dass Sie das Array initialisiert haben – oldrinb

+0

Sie haben Recht !!! Vielen herzlichen Dank! : -) + –

4

Sie haben nicht das erzeugte Element auf das DOM hinzugefügt, so kann es nicht dort zu finden.

Sie können sagen, Node.appendChild (oder eine andere ähnliche) Methode, um es irgendwo zuerst anfügen.