Javascript: проблема при динамическом добавлении строки из HTML в таблицу в IE - PullRequest
5 голосов
/ 24 февраля 2010

Я смотрел на некоторые другие вопросы, такие как на этот , но они не решают эту конкретную проблему:

Когда я запускаю этот код в IE (8):

$("<tr><td>1</td><td>A</td></tr>").appendTo("#myTable tbody"); 

Я получаю HTML-код, добавляемый в тело таблицы:

<TR>
1</TD><//TD>
<TD>
</TD>
A</TD><//TD></TR><//TR>
</TR>

Есть идеи? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 25 февраля 2010

попробуй

$("#myTable tbody").append("<tr><td>1</td><td>A</td></tr>"); 

Это то же самое, но в jQuery

происходит совершенно другое.
1 голос
/ 25 февраля 2010

То, что вы пытаетесь сделать, действительно трудно сделать правильно. Это потому, что элемент <TR> не имеет смысла вне области действия <TABLE>. В то время как интерпретация ваших намерений проста для нас, людей, вполне возможно, что jQuery не достаточно умен, чтобы делать это, и делать правильные вещи.

Правильно было бы что-то вроде:

var tbody = document.getElementById('myTable').getElementsByTagName('tbody')[0];
var row = document.createElement('tr');
tbody.appendChild(row);
var cell = document.createElement('td');
cell.innerHTML = '1';
row.appendChild(cell);
cell = document.createElement('td');
cell.innerHTML = 'A';
row.appendChild(cell);

Теперь код в вашем вопросе, по общему признанию, гораздо более компактен, но это не значит, что jQuery потребуется гораздо меньше работы за кулисами, чтобы реально достичь желаемых результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...