【问题标题】:Changing the innerhtml after cloneNode not working更改 cloneNode 后的 innerhtml 不起作用
【发布时间】:2012-09-18 15:42:49
【问题描述】:

我有一个大约有 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 分配不起作用。

感谢任何帮助。

【问题讨论】:

  • 作为一种解决方法,我在排序时停止了 cloneNode。相反,我为行的每个单元格做了 createElement 和 appendChild 并将行 appendChild 到 tbody

标签: javascript html html-table innerhtml clonenode


【解决方案1】:

作为一种解决方法,我在排序时停止了 cloneNode。相反,我为行的每个单元格做了 createElement 和 appendChild 并将行 appendChild 到 tbody

【讨论】:

    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多