我有一个简单的HTML表格,由表格标题和第一行组成,如下所示:
<html>
<table>
<thead>
<th>name</th>
<th>email</th>
</head>
<tr>
<td>Kipchoge</td>
<td>k@gmail.com</td>
</tr>
</table>
<input type="button" id="btn" value="btn" onClick="fn()"/>
</html>
单击按钮时,如何使用自定义文本更改第一行的所有内容?我尝试将我的新文本直接分配给document.getElementByTagName("tr")[1].innerHTML
,但没有成功,如下面的代码所示:
function fn(){
var d = document.getElementsByTagName('tr');
var customtext = "";
d[1].innerHTML = customtext;
}
<table>
<thead>
<th>name</th>
<th>email</th>
</head>
<tr>
<td>Kipchoge</td>
<td>k@gmail.com</td>
</tr>
</table>
<input type="button" id="btn" value="btn" onClick="fn()"/>
我知道我在上面的代码中所做的是尝试为现有的innerHTML
值分配一个新值,这在使用getElementById
时很容易实现,但我的想法是一次性更改第一行的所有值,而不为每个<td></td>
分配id。是否有替代方法?或者我应该如何处理我的方法来解决这样的问题?
我尝试用新文本更改现有的innerHTML
,如下所示:
d[1].innerHTML = customtext;
但这并不奏效。
3条答案
按热度按时间83qze16e1#
函数
getElementsByTagName
返回一个live HTMLCollection,它是一个类似数组的元素对象。在您的代码中,您试图在表行节点中添加文本。表行-或tr
-只允许在其中包含td
元素。在下面的示例中,我使用innerHTML
来设置表示的HTML,该HTML包含td
,其中包含文本。ibrsph3r2#
使用更强大的
querySelector
方法通过CSS选择器从DOM中选择元素。在这种情况下,您可以使用tbody tr:first-of-type
选择第一行。ua4mk5z43#
您可以通过这种方式遍历表头