2016-08-08 6 views
0

EDITED: Я довольно много проверил десятки статей здесь по этой проблеме, но я просто не могу найти проблему в своем коде: строка (комментарий ниже) возвращает null, хотя я ожидаю, что он вернет тот элемент, который я создал и добавил выше.getElementById (...) возвращает null неожиданно

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

Однако, сейчас я пытаюсь найти этот элемент в другой функции, как это:

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

Может кто-нибудь мне помочь? :-)

Спасибо большое!

Fabian

ответ

0

Я полагаю, вы хотели позвонить document.getElementById("kuerzer" + (i + 1)), а не document.getElementById("kuerzer", i + 1) в structureGantData.

+0

Спасибо за сообщение! Теперь я вызываю gantData [i] [0] = document.getElementById («kuerzer» + (i + 1)). Text; и получить сообщение об ошибке jstut.html: 272 Uncaught TypeError: Невозможно установить свойство «0» неопределенного. –

+0

, что предполагает, что 'gantData [i]' не определено; убедитесь, что вы инициализировали указанный массив – oldrinb

+0

Вы правы !!! Огромное спасибо! : -) + –

4

Вы не добавили созданный элемент в DOM, поэтому он не может быть найден там.

Вы можете использовать, например, Node.appendChild (или любой другой аналогичный метод), чтобы добавить его где-то в первую очередь.

Смежные вопросы