2010-03-19 2 views
1

У меня есть таблица, которая выглядит следующим образом:Добавить в таблицу с Javascript

<table id='t'> 
    <thead> 
     .... 
    </thead> 
    <tbody id='t_tbody'> 
    </tbody> 
</table> 
  • THEAD наполнен содержанием

  • TBODY пуст

Я хочу использовать Javascript, чтобы добавить это (например) в t_tbody:

<tr> 
    <td>Name</td> 
    <td>Points</td> 
    <td>Information</td> 
</tr> 

Как это сделать? Мне нужна функция, которая добавляет выше к t_tbody.

Обратите внимание, что просто с помощью

document.getElementById('t_tbody').innerHtml+="<tr>...</tr>" 

отлично работает в Firefox, но не в IE.

Также обратите внимание, что для этого проекта мне нужно использовать необработанный Javascript (т. Е. Нет фреймворков), так как я заканчиваю проект, который уже был выполнен в основном с использованием исходного Javascript.

+0

от того, что я помню, его другая на основе браузера –

ответ

4
var tr = document.createElement("tr"); 

var td = document.createElement("td"); 
td.innerHTML = "Name"; 
tr.appendChild(td); 

var td2 = document.createElement("td"); 
td2.innerHTML = "Points"; 
tr.appendChild(td2); 

var td3 = document.createElement("td"); 
td3.innerHTML = "Information"; 
tr.appendChild(td3); 

document.getElementById('t_tbody').appendChild(tr); 
+0

жаль, что это не функция добавь но AppendChild один. последняя строка это потому, что у вашего тела нет идентификатора – Gregoire

+0

Я отредактировал html, чтобы таблица и tbody имели разные идентификаторы. Не могли бы вы обновить свой javascript? Думаю, это поможет мне лучше понять. Благодаря! Я также удалил комментарий выше вашего, поскольку это не имело смысла. – Cam

+0

@incrediman: done :) – Gregoire

2

Ответ на Gregoire действительно самый «правильный» способ сделать это, однако, не отметить, что IE, кажется, не жалуйтесь, если вы редактируете innerHTML элементов еще не в DOM. Таким образом, решение может быть сокращен до:

var tr = document.createElement('tr'); 

tr.innerHTML = "<td>Name</td><td>Points</td><td>Information</td>"; 

document.getElementById('t_tbody').appendChild(tr);  
+0

Оказывается, это не работает в FF, как ни странно. То, что заканчивается hapenning, заключается в том, что имя, точки и информация печатаются друг против друга без пробелов - полностью игнорируя тот факт, что они являются td в таблице. Например: «NamePointsInformation». Я не закончил тестирование в IE ... спасибо в любом случае! – Cam

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