javascript - 无法在td的每一行中显示复选框和按钮

标签 javascript json

我无法在 td 的每一行中显示复选框和按钮。目前它仅附加在最后一行 td 中。以及如何在 td 中的所有行中附加复选框和按钮。任何人都可以帮助我做到这一点吗?

for (var i = 0; i < obj.length; i++) {
  var row = document.createElement("tr");
  table.appendChild(row);
  var cell = document.createElement("td");
  row.appendChild(cell);
  cell.appendChild(checkbox);
  var cell = document.createElement("td");
  row.appendChild(cell);
  cell.innerHTML = i;
  for (key in obj[i]) {
    var cell = document.createElement("td");
    row.appendChild(cell);
    cell.innerHTML = obj[i][key];
  }
  var cell = document.createElement("td");
  row.appendChild(cell);
  cell.appendChild(btnEdit);
  cell.appendChild(btnSave);
}

JsFiddle

最佳答案

基本上发生的情况是,每次将输入/按钮附加到单元格时,您都会移动它们,因为它是相同的元素。

要解决此问题,您必须在 for 循环中创建复选框和按钮。

for (var i = 0; i < obj.length; i++) {
    var btnSave = document.createElement('button');
    btnSave.setAttribute ("id","saveBtn");
    btnSave.innerHTML = "Save";

    var btnEdit = document.createElement('input');
    btnEdit.type = "button";
    btnEdit.value = "Edit";

    var checkbox = document.createElement('input');
    checkbox.type = "checkbox";
    checkbox.id= "checkBox";

    var row = document.createElement("tr");
    table.appendChild(row);

    var cell = document.createElement("td");
    row.appendChild(cell);
    cell.appendChild(checkbox);

    var cell = document.createElement("td");
    row.appendChild(cell);

    cell.innerHTML = i;

    for (key in obj[i]) {
        var cell = document.createElement("td");
        row.appendChild(cell);
        cell.innerHTML = obj[i][key];
    }

    var cell = document.createElement("td");

    row.appendChild(cell);
    cell.appendChild(btnEdit);
    cell.appendChild(btnSave);
}

顺便说一句,“id”属性最好是唯一的。

希望这有帮助。

关于javascript - 无法在td的每一行中显示复选框和按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36079272/

相关文章:

javascript - 如何按小时对数据进行排序?

javascript - Nativescript (JavaScript) 中的函数中的绑定(bind)变量未更新

javascript - 从 Route 发送后获取 React Props

json - Neo4j::Rails::Model to_json - 节点 ID 丢失

javascript - 似乎无法删除对象文字中的元素

Javascript - 再次评估参数

Javascript - 如何创建一个国家和城市的级联下拉列表,并在 AngularJS 中选择一个国家作为默认国家?

c# - 将日期作为字符串传递 - 防止 json.net 解析日期

android - 通过 Socket.io websocket 从我的应用程序向特定的 socketId 发送 json 和音频文件

java jsonxpth 解析json跳转到节点