javascript - 追加元素到dom

标签 javascript html-table appendchild

var flag=0;
function appenditem()
{

var did=["100","101"];
var dname=["Barry","Allen"];
var dmark=["50","100"];
var tab=document.querySelectorAll(".subtable4");
var tab_length=document.querySelectorAll(".subtable4").length;

if(flag==0)
{
var row="<tr><td>"+did[0]+"</td><td>"+dmark[0]+"</td><td>"+dname[0]+"</td></tr>";
}

else if(flag==1)
{
var row="<tr><td>"+did[1]+"</td><td>"+dmark[1]+"</td><td>"+dname[1]+"</td></tr>";
}



for(var i=0;i<tab_length;i++)
    {

    tab[i].innerHTML=row;
    }

flag=1;
}
<table class="subtable4">
</table>               <!--Table 1-->

<table class="subtable4">
</table>               <!--Table 2-->

由于我使用了 innerHTML 而不是 appendChild,因为使用了 innerHTML,数组 0 的数据被数组 1 的数据覆盖。在这里,我获取数组 0 元素并将它们存储在单独的行中,并将数组 1 元素存储在单独的数组中。

最佳答案

使用 innerHTML 代替 appendChild()。因为 querySelectorAll 返回一个静态列表。使用 appendChild()、removeChild( 等方法通过该列表对文档所做的任何更改都不会反射(reflect)出来。

function appenditem()
{
  var did="100";
  var dname="Barry";
  var dmark="50";
  var tab=document.querySelectorAll(".subtable4");
  var tab_length=document.querySelectorAll(".subtable4").length;
  var row="<tr><td>"+did+"</td><td>"+dmark+"</td><td>"+dname+"</td></tr>";

  for(var i=0;i<tab_length;i++)
  {
    tab[i].innerHTML=row;
  }
}

appenditem();
<table class="subtable4">
</table>               

<table class="subtable4">
</table>

关于javascript - 追加元素到dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47606060/

相关文章:

javascript - 根级别的数据无效。使用 ajax wcf 服务,但无法弄清楚

javascript/jquery - 将去抖动添加到按钮

javascript - 如何使用 JavaScript 和 jQuery 设置 HTML 表格单元格宽度

javascript - 在节点 x 处追加子节点?

javascript - 使用DOM动态生成按钮并编辑onclick事件

javascript - Angular:在 HTML/模板中使用另一个模块的功能

javascript - 为什么所有表元素都被扔到第一个数组索引中?

php - 当表格由 PHP 函数构建时,是什么阻止表格使用 CSS 正确格式化?

css - appendChild 可能在 IE9 中保持 hover css 状态

javascript - 如何使用 Strapi 创建自定义注册和登录 API?