Не уверен на 100% в проблеме с индексом, но с точки зрения рендеринга, здесь есть разбивка:
var element=$("tbody").append("<tr id='" + index + "'>");
Я думаю, что именно здесь начинается ваша ошибка, в приведенной выше строке элемент будет равен tbody
, а не tr
.
var element1=element.append("<td><input type='checkbox'></input></td>");
Здесь вы теперь добавляете td к tbody
, и тогда element1 также будет равен tbody
. следовательно, следующее добавление внутри каждого не работает правильно. Наконец, вы должны добавлять только целые элементы, поэтому нельзя ожидать, что добавление <tr>
и </tr>
как двух отдельных операций сработает.
Попробуйте следующее:
var row = document.createElement('tr');
row.setAttribute('id', index);
$("tbody").append(row);
$(row).append("<td><input type='checkbox'></input></td>");
$.each(this.cells, function(index){
$(row).append("<td>" + this.data + "</td>");
});
$("tbody").append(row);
Просто мысль о проблеме индекса. Вы используете имя index
дважды. Попробуйте использовать другое имя переменной для одного из них.