使用 JavaScript 在没有 ID 的情况下在 table 中创建 <tr>
Create <tr> in table without ID using JavaScript
我对现有 HTML table 的动态行创建有疑问。对不起,如果问题看起来很愚蠢,但我是 JavaScript 的初学者。这里是 HTML table (我不能在这里更改任何 HTML 代码):
我必须使用 JavaScript 添加行,但是因为我无法将 table 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);
<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>
有人能帮帮我吗?非常感谢你! :D
查看浏览器的开发者工具。
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>
这是因为您不能单独使用 getElementsByTagName 或 ClassName。整个语句是
document.getElementsByTagName('TABLE');
然后就可以了
我对现有 HTML table 的动态行创建有疑问。对不起,如果问题看起来很愚蠢,但我是 JavaScript 的初学者。这里是 HTML table (我不能在这里更改任何 HTML 代码):
我必须使用 JavaScript 添加行,但是因为我无法将 table 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);
<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>
有人能帮帮我吗?非常感谢你! :D
查看浏览器的开发者工具。
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>
这是因为您不能单独使用 getElementsByTagName 或 ClassName。整个语句是
document.getElementsByTagName('TABLE');
然后就可以了