2012-05-06 1 views
1

Это происходит в этом:Невозможно вызвать метод AppendChild нулевого

for(var i = 0; i<phoneNums.length; i++) 
{ 
    var lines = document.createElement('tr'); 
    var number = document.createElement('td'); 
    number.innerHTML = phoneNums[i]; 
    var minutes = document.createElement('td'); 
    minutes.innerHTML = minutesUsed[i]; 
    var plan = document.createElement('td'); 
    plan.innerHTML = plans[i]; 
    var charges = document.createElement('td'); 
    charges.innerHTML = charge[i]; 
    document.getElementById('theTable').appendChild(lines); 
    lines.appendChild(number); 
    lines.appendChild(minutes); 
    lines.appendChild(plan); 
    lines.appendChild(charges); 
} 

В частности на:

document.getElementById('theTable').appendChild(lines);

<table id = 'theTable'> 
     </table> 
     <script type = 'text/javascript'> 
      populateTable(); 
     </script> 

Я пытаюсь создать функцию, которая добавляет tr и td и значения в таблицу.

+1

элемент 'theTable' html существует в документе? И выполняете ли вы этот скрипт после того, как страница закончила загрузку? – quodlibetor

+0

theTable - это идентификатор моей таблицы, в который все добавляется, и скрипт выполняет onload. – SemicolonExpected

+0

попробуйте вырезать/вставить элемент сценария в конец html, если он все еще не работает, это означает, что вы, вероятно, получили опечатку , – quodlibetor

ответ

3

Возможно, вы используете этот скрипт до того, как в вашем документе существует «TheTable». Убедитесь, что этот скрипт находится под вашей таблицей с id="theTable" или что он запущен в обработчике событий, который возникает после того, как таблица существует.

1

Это означает, что у вас нет элемента в DOM с идентификатором «theTable». Где-то в вашем HTML, вы должны иметь что-то вроде:

<table id="theTable">... 

В качестве альтернативы, как и другие, также упоминалось, этот элемент не может быть загружена в DOM, прежде чем ваш сценарий выполняется.