помогите с таблицей
Здравствуйте, помогите создать таблицу средствами JS. К уже созданной таблице я могу добавлять строки и удалять их а вот чтоб создать таблицу с нуля чего то не выходит ни как. Пишу следующее:
t=document.createElement('table').tBodies[0];
r=t.insertRow(-1);
c=r.insertCell(0);
c.innerText='таблица';
document.body.appendChild(t);
Не хочет создаваться, выдает ошибку на строке r=t.insertRow(-1);:( Браузер у меня IE8 |
<!DOCTYPE html>
<script type = "text/javascript">
window.onload = function(){
document.body.appendChild(
function(rows, cols){
var table = document.createElement("TABLE"), tr, td;
for(var r = 0; r < rows; r ++){
table.appendChild(
(function(){
tr = document.createElement("TR");
for(var c = 0; c < cols; c ++){
tr.appendChild(
(function(){
td = document.createElement("TD");
td.innerHTML = "row: " + r + ", cell: " + c;
td.style.border = "1px solid red";
return td;
}())
)
}
return tr;
}())
)
}
return table;
}(10, 7)
)
}
</script>
|
Спасибо. Но у меня в IE не работает ( Хотя сейчас через IE зашел на сайт Ваш пример работает, копирую скрипт себе запускаю, не работает
|
Вы в своем браузере нажимали кнопочку "Посмотреть"? что здесь может не работать? У меня к сожалению только IE9, но этот код должен везде работать, здесь не используются всякие опасные методы createElement везде есть
|
он про это
с конца не вставляется r=t.insertRow(-1); |
Я просто не могу понять почему у меня не работает этот пример:
<script type = "text/javascript">
var oTbl=document.createElement("Table");
for(i=0;i<3;i++)
{
var oTR= oTbl.insertRow(i);
for(j=0;j<3;j++)
{
var oTD= oTR.insertCell(j);
oTD.InnerText="111";}
document.body.appendChild(oTbl);
</script>
Выдает ошибку: document.body is null or not an object Вроде ведь все правильно |
poorking, да извиняюсь работает Ваш код
|
melky,
в ie8 insertRow/Cell(-1) не работает? ну не знаю, я вообще этими методами никогда не пользовался
<!DOCTYPE html>
<script type = "text/javascript">
//Этот код на этой странице у меня тоже не работает
var table = document.createElement("TABLE");
for(var r = 0; r < 10; r ++){
var row = table.insertRow(-1);
for(var c = 0; c < 10; c ++){
var cell = row.insertCell(-1);
cell.innerHTML = r + "-" + c;
cell.style.border = "1px solid red";
}
}
document.body.appendChild(table);
</script>
Не знаю чего не работает. Мне этими методами и не приходилось пользоваться если честно, не знаю о их кроссбраузерности. Они нужны только если вместо insertBefore, так как он с таблицами в ie как раз вроде некорректно работает |
тег <body> забыли
<!DOCTYPE html>
<body></body>
<script type = "text/javascript">
var table = document.createElement("TABLE");
for(var r = 0; r < 10; r ++){
var row = table.insertRow(-1);
for(var c = 0; c < 10; c ++){
var cell = row.insertCell(-1);
cell.innerHTML = r + "-" + c;
cell.style.border = "1px solid red";
}
}
document.body.appendChild(table);
</script>
|
melky,
ай точно, предыдущий пример я завернул в window.onload, браузер его дорисовал |
| Часовой пояс GMT +3, время: 13:12. |