2013-04-22 1 views
0

У меня есть следующие функции для добавляемых строк и ячеек в пустой table:RowIndex при создании таблицы с Javascript

 function createTable(size) { 
      var table = document.getElementById("gameTable"); 
      for (var i=0; i<size; i++) { 
       var tr = document.createElement("tr"); 
       for (var j=0; j<size; j++) { 
        var td = document.createElement("td"); 
        tr.appendChild(td); 
       } 
       table.appendChild(tr); 
       tr.rowIndex = i; 
      } 

     } 

До сих пор так хорошо.

Моя проблема заключается в том, что позже, когда я пытался достичь конкретных ячеек внутри таблицы:

var x = target.parentNode.rowIndex; 
var y = target.cellIndex; 

table.rows[x].cells[y].innerHTML = 'blah' 

target удельная TD, что была нажата.

rows[x] индекс всегда -1. Каждый раз, когда я пытаюсь выполнить линию выше, я получаю сообщение об ошибке: «Не могу прочитать ячейки свойств неопределенного»
Я даже попытался вручную установить rowIndex каждой строки для того, что должно быть (внутри функции), но безрезультатно.

CellIndex получается отлично, но rowIndex равен -1 и каждой из вновь созданных строк таблицы.

Что я могу сделать, чтобы исправить это?

+1

Где ваш код, когда вы пытаетесь добраться до стола? – skyline3000

+1

Вы действительно должны присоединяться к телу, а не к элементу таблицы. – epascarello

+0

Я отредактировал, чтобы сделать его более ясным. элемент таблицы уже существует, я просто добавляю TRs и TDs. – frrlod

ответ

0

Это можно решить, добавив элементы <tr> в <tbody>.

 function createTable(size) { 
      var table = document.getElementById("gameTable"); 
      var tb = document.createElement("tbody"); 
      for (var i=0; i<size; i++) { 
       var tr = document.createElement("tr"); 
       for (var j=0; j<size; j++) { 
        var td = document.createElement("td"); 
        tr.appendChild(td); 
       } 
       tb.appendChild(tr); 
      } 
      table.appendChild(tb); 
     } 
+0

Настольное создание отлично работает в Chrome без тёмного. Проблема должна заключаться в том, как он выполняет _accessing_ свойство '.rows []'. – Alnitak

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

  • Нет связанных вопросов^_^