2010-12-16 2 views
1

Это довольно простой вопрос, у меня возникают проблемы с вставкой данных из Javascript в таблицу HTML.Javascript, вставляющий данные в таблицу HTML

Вот отрывок из моего JavaScript:

ОБНОВЛЕНО - Я избавилась от двух петель и упростили его в один, однако есть еще проблема ..

for (index = 0; index < enteredStrings.length; index++) { 
     output.innerHTML += "<td>" + enteredStrings[index] + "</td>" 
     + "<td>" + enteredStringsTwo[index] + "</td>"; 
     nameCounter++; 
     total.innerHTML = "Total: " + nameCounter; 
    } 

А вот кроме моего HTML страницы:

<table id="nameTable"> 
    <tr> 
    <th>First</th><th>Last</th> 
    </tr> 

Обновлено Изображение:

alt text

+0

Почему у вас есть 2 петли? В чем разница между ними? – 2010-12-16 05:47:08

+0

Исправлено, но все еще есть проблема. – TheStandardRGB 2010-12-16 06:04:43

+0

проверить edit2 в моем ответе и посмотреть, работает ли это для вас. – 2010-12-16 06:12:07

ответ

5

Попробуйте это (под редакцией):

var tableContent = '<tr>'; 
for (index = 0; index < enteredStrings.length; index++) { 
    tableContent += "<td>" + enteredStrings[index] + "</td>"; 
    nameCounter++; // I don't know if this should be there, 
        // logically the counter should be incremented here as well? 
    total.innerHTML = "Total: " + nameCounter; 
} 
tableContent += '</tr><tr>'; 

for (index = 0; index < enteredStringsTwo.length; index++) { 
    tableContent += "<td>" + enteredStringsTwo[index] + "</td>"; 
    nameCounter++; 
    total.innerHTML = "Total: " + nameCounter; 
} 
tableContent += '</tr>'; 
output.innerHTML += tableContent; 

Edit2 (для обновленного кода вопроса):

var tableContent = '<tr>'; 
for (index = 0; index < enteredStrings.length; index++) { 
    tableContent += "<td>" + enteredStrings[index] + "</td>" 
    + "<td>" + enteredStringsTwo[index] + "</td>"; 
    nameCounter++; 
    total.innerHTML = "Total: " + nameCounter; 
} 
tableContent += '</tr>'; 
output.innerHTML += tableContent; 

Edit3 (после того, как смотреть на код, посылаемый по электронной почте):

var tableContent = ""; 

for (index = 0; index < enteredStrings.length; index++) { 
    tableContent += "<tr><td>" + enteredStrings[index] + "</td>" 

    + "<td>" + enteredStringsTwo[index] + "</td></tr>"; 

    nameCounter++; 
    total.innerHTML = "Total: " + nameCounter; 
} 
output.innerHTML = tableContent; 
3

вместо закрытия TD вы открываете новые попробовать

for (index = 0; index < enteredStrings.length; index++) { 
    output.innerHTML += "<td>" + enteredStrings[index] + "</td>"; 
    total.innerHTML = "Total: " + nameCounter; 
} 

for (index = 0; index < enteredStringsTwo.length; index++) { 
    output.innerHTML += "<td>" + enteredStringsTwo[index] + "</td>"; 
    nameCounter++; 
    total.innerHTML = "Total: " + nameCounter; 
} 

UPDATE: вы добавление HTML, к таблице вместо строки. , в этом случае браузер автоматически создавал строку после каждого добавления td.

0

С slig ht изменения в вашем коде,

var outputTbl = document.getElementById('nameTable'); 

    var output = document.createElement("tr"); 
    outputTbl.appendChild(output); 

    for (index = 0; index < enteredStrings.length; index++) { 
     output.innerHTML += "<td>" + enteredStrings[index] + "</td>"; 
     total.innerHTML = "Total: " + nameCounter; 
    } 

    for (index = 0; index < enteredStringsTwo.length; index++) { 
     output.innerHTML += "<td>" + enteredStringsTwo[index] + "</td>"; 
     nameCounter++; 
     total.innerHTML = "Total: " + nameCounter; 
    } 
0

Если вам нужно добавить внутренний html-код здесь.

<table id="nameTable" style="width:300px;"> 
    <tr> 
     <th>First</th><th>Last</th> 
    </tr> 
</table> 

Вы можете использовать Jnerator в этом случае.

Если это ваши данные:

var data = [ 
    { first: 'Cole', last: 'Alan'}, 
    { first: 'Michael', last: 'Scott'} 
] 

Вы можете добавить их к вам таблицу в следующем виде:

for(var i=0; i<data.length; i++) { 
    var item = data[i]; 
    var row = $j.tr({ child:[$j.td(item.first), $j.td(item.last)] }); 
    nameTable.appendChild(row.dom()); 
} 
nameTotal.innerHTML = 'Total: ' + data.length; 

This is example.

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