То, что вы пытаетесь сделать, действительно трудно сделать правильно. Это потому, что элемент <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 потребуется гораздо меньше работы за кулисами, чтобы реально достичь желаемых результатов.