如何用js添加表格? [英] How adding a table with js?

查看:25
本文介绍了如何用js添加表格?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过 JavaScript 在我的 html 表格中添加一个表格.

我已经尝试过使用 appendChildinsertBefore 方法,但这些方法都不起作用.

这是我的 JavaScript:

var utilisateur = [{编号:51,检查:错误,prenom:多洛雷斯",日期:费米埃尔",考试:主持人",注意:ww.dolores@gmail.com"}, {编号:52,检查:正确,prenom:伯纳德",日期:Robopsycologue",考试:人类",注意:ww.bernard@gmail.com"}//{//id: 3,//名称:罗伯特",//工作:导演",//物种:人类",//电子邮件:ww.robert@gmail.com"//},//{//id: 4,//名称:梅芙",//工作:Maquerelle",//物种:主机",//电子邮件:ww.maeve@gmail.com"//},//{//id: 5,//名称:泰迪",//工作: "Inconnu",//物种:主机",//电子邮件:ww.teddy@gmail.com"//},//{//id: 6,//名称:威廉",//工作:Actionnaire",//物种:人类",//电子邮件:ww.william@gmail.com"//},//{//id: 7,//名称:艾尔西",//作业:程序使用",//物种:人类",//电子邮件:ww.elsie@gmail.com"//},//{//id: 8,//name: "拿但业",//工作:开发",//物种:人类",//电子邮件:s.nathanael@outlook.fr"//}];for (让 i = 0; i <100; i++) {var row = document.createElement("tr");var cell0 = document.createElement("td");var cell1 = document.createElement("td");var atr = document.createAttribute("class");atr.value = "bs-checkbox";cell1.setAttributeNode(atr);var para = document.createElement("输入");var para1 = document.createAttribute("data-index");var para2 = document.createAttribute("name");var para3 = document.createAttribute("type");para1.value = "0";para2.value = "btSelectItem";para3.value = "复选框";para.setAttributeNode(para1);para.setAttributeNode(para2);para.setAttributeNode(para3)cell1.appendChild(para);//var cell1 = '<td class="bs-checkbox"></td>'//警报(cell1).innerText;var cell2 = document.createElement("td");var cell3 = document.createElement("td");var cell4 = document.createElement("td");var cell5 = document.createElement("td");var cell6 = document.createElement("td");var cell7 = document.createElement("td");var cell8 = document.createElement("td");cell0.innerText = utilisateur[i].id;cell1.innerText = utilisateur[i].checkedcell2.innerText = utilisateur[i].prenom;cell3.innerText = utilisateur[i].date;cell4.innerText = utilisateur[i].examen;cell5.innerText = utilisateur[i].note;row.appendChild(cell0);row.appendChild(cell1);row.appendChild(cell2);row.appendChild(cell3);row.appendChild(cell4);row.appendChild(cell5);//row.appendChild(cell6);//row.appendChild(cell7);//row.appendChild(cell8);//document.getElementsById("tbody")[0].appendChild(row);//var elem = document.getElementsById("tabs1");//var mychild = document.getElementById("")//elem.insertBefore(mypara, mychild);//elem.appendChild(row);var element = document.getElementById("tabs1")[0];element.appendChild(row);}$(document).ready(function() {$(cell1).toggleClass("bs-checkbox");});

这是我的 HTML:

<!-- <table class="table"><thead class="thead-dark"><tr><th scope="col">#</th><th class="col">Name</th><th class="col">作业</th><th class="col">属性</th><th class="col">电子邮件</th></tr></thead>-->

<table class="table" data-click-to-select="true" data-filter-control="true" data-search="true" data-show-export="true" data-toggle="table" 数据工具栏="#toolbar" id="表格"><头><tr><th id="0" style="visibility: hidden; display: none;"></th><th data-checkbox="true" data-field="state"></th><th data-field="prenom" data-filter-control="input" data-sortable="true">Prénom</th><th data-field="date" data-filter-control="select" data-sortable="true">日期</th><th data-field="examen" data-filter-control="select" data-sortable="true">Examen</th><th data-field="note" data-sortable="true">Note</th></tr></thead><tbody id="tbody"><tr><td id="1" style="visibility: hidden; display: none;"></td><td class="bs-checkbox"><input data-index="0" name="btSelectItem" type="checkbox"></td><td>瓦莱丽</td><td>01/09/2015</td><td>法语</td><td>12/20</td></tr></tbody>

我想在 tbody 上的 div 上添加我的表格 JavaScript,但他总是跟踪我的 tbody.

问题是,即使我为我的 JavaScript 创建另一个 div,他也不会继续这个 div,所以我想把我的 JavaScript 放在我的 div tabs1.

解决方案

你可以使用一个简单的解决方案,使用 ES6 字符串插值

例如我们有一个对象数组

员工:[{name: 'John Doe',电话:'00000000',},{名称:'乔治·丹尼尔斯',电话:'11111111',}]

和一个表格 html 对象.

您可以像这样附加行:

for(让员工的员工){let row = document.createElement("tr");row.innerHTML = `<td>${employee.name}</td><td>${employee.phone}</td>`;table.appendChild(row);}

I want add a table on my html table via JavaScript.

I've already tried using the appendChild and insertBefore methods, but those didn't work.

Here is my JavaScript:

var utilisateur = [{
    id: 51,
    checked: false,
    prenom: "Dolores",
    date: "Fermière",
    examen: "host",
    note: "ww.dolores@gmail.com"
  }, {
    id: 52,
    checked: true,
    prenom: "Bernard",
    date: "Robopsycologue",
    examen: "human",
    note: "ww.bernard@gmail.com"
  }
  // {
  //   id: 3,
  //   name: "Robert",
  //   job: "Directeur",
  //   specie: "human",
  //   email: "ww.robert@gmail.com"
  // },
  // {
  //   id: 4,
  //   name: "Maeve",
  //   job: "Maquerelle",
  //   specie: "host",
  //   email: "ww.maeve@gmail.com"
  // },
  // {
  //   id: 5,
  //   name: "Teddy",
  //   job: "Inconnu",
  //   specie: "host",
  //   email: "ww.teddy@gmail.com"
  // },
  // {
  //   id: 6,
  //   name: "William",
  //   job: "Actionnaire",
  //   specie: "human",
  //   email: "ww.william@gmail.com"
  // },
  // {
  //   id: 7,
  //   name: "Elsie",
  //   job: "Programmeuse",
  //   specie: "human",
  //   email: "ww.elsie@gmail.com"
  // },
  // {
  //  id: 8,
  //  name: "Nathanael",
  //  job: "Dev",
  //  specie: "human",
  //  email: "s.nathanael@outlook.fr" 
  // }
];
for (let i = 0; i < 100; i++) {
  var row = document.createElement("tr");
  var cell0 = document.createElement("td");
  var cell1 = document.createElement("td");
  var atr = document.createAttribute("class");
  atr.value = "bs-checkbox";
  cell1.setAttributeNode(atr);
  var para = document.createElement("input");
  var para1 = document.createAttribute("data-index");
  var para2 = document.createAttribute("name");
  var para3 = document.createAttribute("type");
  para1.value = "0";
  para2.value = "btSelectItem";
  para3.value = "checkbox";
  para.setAttributeNode(para1);
  para.setAttributeNode(para2);
  para.setAttributeNode(para3)
  cell1.appendChild(para);
  // var cell1 = '<td class="bs-checkbox"></td>'
  //alert(cell1).innerText;
  var cell2 = document.createElement("td");
  var cell3 = document.createElement("td");
  var cell4 = document.createElement("td");
  var cell5 = document.createElement("td");
  var cell6 = document.createElement("td");
  var cell7 = document.createElement("td");
  var cell8 = document.createElement("td");
  cell0.innerText = utilisateur[i].id;
  cell1.innerText = utilisateur[i].checked
  cell2.innerText = utilisateur[i].prenom;
  cell3.innerText = utilisateur[i].date;
  cell4.innerText = utilisateur[i].examen;
  cell5.innerText = utilisateur[i].note;
  row.appendChild(cell0);
  row.appendChild(cell1);
  row.appendChild(cell2);
  row.appendChild(cell3);
  row.appendChild(cell4);
  row.appendChild(cell5);
  // row.appendChild(cell6);
  // row.appendChild(cell7);
  // row.appendChild(cell8);
  // document.getElementsById("tbody")[0].appendChild(row);
  // var elem = document.getElementsById("tabs1");
  // var mychild = document.getElementById("")
  // elem.insertBefore(mypara, mychild);
  // elem.appendChild(row);
  var element = document.getElementById("tabs1")[0];
  element.appendChild(row);
}
$(document).ready(function() {
  $(cell1).toggleClass("bs-checkbox");
});

Here is my HTML:

<div class="tabs" id="tabs1">
  <!-- <table class="table">
    <thead class="thead-dark">
      <tr>
        <th scope="col">#</th>
        <th class="col">Name</th>
        <th class="col">Job</th>
        <th class="col">Attribut</th>
        <th class="col">Email</th>
      </tr>
    </thead>
  </table> -->
</div>
<table class="table" data-click-to-select="true" data-filter-control="true" data-search="true" data-show-export="true" data-toggle="table" data-toolbar="#toolbar" id="table">
  <thead>
    <tr>
      <th id="0" style="visibility: hidden; display: none;"></th>
      <th data-checkbox="true" data-field="state"></th>
      <th data-field="prenom" data-filter-control="input" data-sortable="true">Prénom</th>
      <th data-field="date" data-filter-control="select" data-sortable="true">Date</th>
      <th data-field="examen" data-filter-control="select" data-sortable="true">Examen</th>
      <th data-field="note" data-sortable="true">Note</th>
    </tr>
  </thead>
  <tbody id="tbody">
    <tr>
      <td id="1" style="visibility: hidden; display: none;"></td>
      <td class="bs-checkbox"><input data-index="0" name="btSelectItem" type="checkbox"></td>
      <td>Valérie</td>
      <td>01/09/2015</td>
      <td>Français</td>
      <td>12/20</td>
    </tr>
  </tbody>
</table>

I want add my table JavaScript on my div on tbody, but he always go after my tbody.

The problem is, even if i create another div for my JavaScript, he never go on this div, so i want put my JavaScript on my div tabs1.

解决方案

You can use a simple solution, using ES6 string interpolation

For example we have an array of objects

employees: [
 {
    name: 'John Doe',
    phone: '00000000',
 },
 {
   name: 'George Daniels',
   phone: '11111111',
 }
]

and a table html object.

you can append rows like this:

for (let employee of employees) {
    let row = document.createElement("tr");
    row.innerHTML = `<td>${employee.name}</td>
                     <td>${employee.phone}</td>`;
    table.appendChild(row);
   }

这篇关于如何用js添加表格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆