使用JavaScript

时间:2016-01-03 11:34:13

标签: javascript html html-table appendchild

我有一个关于动态行创建到现有HTML表的问题。对不起,如果问题似乎很愚蠢,但我是JavaScript的初学者。这是HTML表格(我这里不能更改任何HTML代码)

我必须使用JavaScript添加行,但由于我无法将表ID添加到HTML代码中,因此无法通过insertRow()函数执行此操作。我已尝试使用此代码,但它不起作用(甚至不使用getElementsByClassName(' some-tab'))。不会创建行。代码:



var something = getElementsByTagName('table');
var tableca = something[0];

for (var i = 1; i < 4; i++) {

  var tr = document.createElement('tr');

  var td1 = document.createElement('td');
  var td2 = document.createElement('td');

  var text1 = document.createTextNode('Text1');
  var text2 = document.createTextNode('Text2');

  td1.appendChild(text1);
  td2.appendChild(text2);
  tr.appendChild(td1);
  tr.appendChild(td2);

  tableca.appendChild(tr);
}
document.body.appendChild(tableca);
&#13;
<table class="some-tab">
  <tr>
    <th>Name</th>
    <th>Description</th>
  </tr>
  <tr>
    <td id="Username">Admin</td>
    <td id="Description">STH STH STH!</td>
  </tr>
</table>
&#13;
&#13;
&#13;

有人可以帮帮我吗?非常感谢你! :d

2 个答案:

答案 0 :(得分:2)

查看浏览器的开发者工具。

Uncaught ReferenceError: getElementsByTagName is not defined

getElementsByTagNamedocument对象和DOM元素对象的方法。它不是一个全球性的。

只需编辑代码的第一行即可。

var something = document.getElementsByTagName('table');
var tableca = something[0];

for (var i = 1; i < 4; i++) {

  var tr = document.createElement('tr');

  var td1 = document.createElement('td');
  var td2 = document.createElement('td');

  var text1 = document.createTextNode('Text1');
  var text2 = document.createTextNode('Text2');

  td1.appendChild(text1);
  td2.appendChild(text2);
  tr.appendChild(td1);
  tr.appendChild(td2);

  tableca.appendChild(tr);
}
document.body.appendChild(tableca);
<table class="some-tab">
  <tr>
    <th>Name</th>
    <th>Description</th>
  </tr>
  <tr>
    <td id="Username">Admin</td>
    <td id="Description">STH STH STH!</td>
  </tr>
</table>

答案 1 :(得分:1)

这是因为您不能单独使用getElementsByTagName或ClassName。整个陈述是

document.getElementsByTagName('TABLE');

然后它起作用