2012-02-13 2 views
1

Я использую что-то вроде этого, чтобы создать динамическую таблицуДинамическое создание таблицы с помощью JavaScript

for(var i=0;i<nrRows;i++){ 
     row=document.createElement('tr'); 
     for(var j=0;j<nrCols;j++){ 
     cell=document.createElement('td'); 
     cell.appendChild(document.createTextNode(i+' '+j)) 
     row.appendChild(cell); 
     } 
     tbo.appendChild(row); 
    } 

Теперь я хочу, чтобы первый ряд будет заполнен заголовками столбцов. И я хочу дать ID каждому текстовому полю в каждой строке. Как мне это сделать?

ответ

0
if(i == 0) 
{ 
    cell = document.createElement('th'); 
    //give column header names 
} 
else 
{ 
    cell = document.createElement('td'); 
    var inputFld = document.createElement('input'); 
    inputFld.type = "text"; //input type = textfield 
    inputFld.id = "input" + i;//assign id to input field 
    cell.appendChild(inputFld); 
} 
+0

Вы можете сцепить '«_»+ j' (или что-то) на конце ваших входных идентификаторов, чтобы каждый вход в строке не имеет тот же идентификатор ... – nnnnnn

+0

да, вот почему я объединил i с id, даже j также можно объединить, чтобы генерировать уникальный идентификатор по таблице –

+0

Thanx. Идеально. –

3

«Теперь я хочу, чтобы первая строка была заполнена заголовками столбцов».

cell = document.createElement(i===0 ? 'th' : 'td'); 

«И я хочу дать идентификатор каждому текстовое поле в каждой строке.»

Какие текстовые поля? В настоящее время вы не создаете текстовые поля. Каждый атрибут id должен быть уникальным, поэтому, предположив, что вы действительно создали несколько текстовых полей, вы можете просто установить id на i + "_" + j (аналогично тому, что у вас уже есть для вашего .createTextNode()), чтобы другие части вашего кода могли легко вычислить id, который требуется для доступа к какой-либо конкретной ячейке.

1
if(i == 0) 
{ 
    cell = document.createElement('th'); 
} 
else 
{ 

    cell = document.createElement('td'); 
    var inputFld = document.createElement('input'); 
    inputFld.type = "text"; //input type = textfield 
    var count=table.rows.length; 
    inputFld.id = "NewTb" + count; 
    cell.appendChild(inputFld); 
} 
Смежные вопросы