我有一个关于动态行创建到现有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;
有人可以帮帮我吗?非常感谢你! :d
答案 0 :(得分:2)
查看浏览器的开发者工具。
Uncaught ReferenceError: getElementsByTagName is not defined
getElementsByTagName
是document
对象和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');
然后它起作用