我有一个大约有 50 行的表。每行的最后一个单元格是一个图像,单击该图像我会在该特定行的每个单元格中显示文本框,以便用户可以编辑值。为此,我在单击图像时编写了一个 Javascript,我将遍历该特定行并将每个 td 的 innerHTML 更改为具有一个文本框。
function insertEdittableRow(ids){
var row = $(ids).closest("tr");
var tdvar = row.find('td[class=mainServer]')[0];
var servname = tdvar.innerHTML.trim();
tdvar.innerHTML = "'<'INPUT id=updServerName class=TextBoxStyle value='" + servname
+"' type=text name=updServerName/> ";
}
这工作正常。我想做的第二步是排序。
单击表格标题时,我正在对表格进行排序。javascript 的排序是这样的。它占用所有行,将其放入具有旧索引(行号)的数组中并进行排序。然后它遍历数组并创建一个新的排序 tbody。表中旧的未排序的 tbody 将替换为这个新的排序的。
for(var i=0, len=arrayOfRows.length; i'<'len; i++) {
newTableBody.appendChild(rows[arrayOfRows[i].oldIndex].cloneNode(true));
}
table.replaceChild(newTableBody,tbody);
这也很好用。
但问题是,现在,如第一部分所述,单击最后一个单元格中的图像按钮不起作用。我将调试器放在那个 javascript 函数中,它会在那里命中并形成文本并分配给最后一个 td 的 innerHTML,但是在页面中我看不到文本框。
总之,文本框在排序之前作为 innerHTML 插入,但是在我使用 cloneNode 进行排序后,创建了一个新的排序 tBODY 并插入到表中,innerHTML 分配不起作用。
任何帮助表示赞赏。