我是Javascript的新手,所以请放轻松。我想使用javascript更改表中的数据。我到处找了一个合适的教程,但我还没找到。这是我的代码。
function trans() {
var table = document.getElementById("table");
var row = table.getElementsByTagName("tr")[2];
var td = row.getElementsByTagName("td")[0];
td.innerHTML = "Julius";
}
**css**
table {
width: 100%;
border-collapse: collapse;
font-family: calibri;
}
tr,
th,
td {
border: 2px solid black;
padding: 10px 10px 10px 10px;
}
thead {
background-color: black;
color: white;
}
tbody {
background-color: white;
color: black;
}
.center {
text-align: center;
}
.caption {
text-align: center;
}
button {
background-color: blue;
color: white;
border-radius: 5px;
height: 25px;
}
<html>
<body>
<table id="table" title="Employment status verses Living Conditions">
<caption>Employment status verses Living Conditions</caption>
<thead>
<tr>
<th colspan="3" class="caption">Employment status verses Living Conditions</th>
</tr>
<tr>
<th>Name</th>
<th>State</th>
<th>Condition</th>
</tr>
</thead>
<tr>
<td>Antony</td>
<td>Employed</td>
<td>Poor</td>
</tr>
<tr>
<td>Grace</td>
<td>Student</td>
<td>Wealthy</td>
</tr>
<tr>
<td>Jane</td>
<td>Sponsored</td>
<td>Self actualization</td>
</tr>
<tr>
<td>Christine</td>
<td colspan="2" class="center"><i>Unknown</i>
</td>
</tr>
<tr>
<td rowspan="2">James and John</td>
<td>Fishermen</td>
<td>Spiritual</td>
</tr>
<tr>
<td>Brothers</td>
<td>Disciples</td>
</tr>
</table>
<button onclick="trans()">Change name</button>
</body>
</html>
当我运行代码时,它会给我以下错误,
{
"message": "Uncaught TypeError: table.getElementByTagName is not a function",
"filename": "http://stacksnippets.net/js",
"lineno": 96,
"colno": 15
}
我已将getElementByTagName
更改为getElementsByTagName
,但它仍然给我一个错误,我的代码有什么问题,我该怎么做才能修复它。找到我的jsfiddle here
答案 0 :(得分:1)
这有效:
Code snippet
试试这个:
function trans() {
var table = document.getElementById("table");
var row = table.getElementsByTagName("tr")[2];
var td = row.getElementsByTagName("td")[0];
td.innerHTML = "Julius";
}
您选择了第一个tr
td
,其中只有th
,而您还忘记了"s"
中的"getElementsByTagName"
。
因为使用"Tag"
你可以获得超过1个元素,你需要添加“s”,当它是ID
时,你只能获得1个项目是有意义的,因此不需要“s”
答案 1 :(得分:0)
您在最后一行代码中遗漏了s
。
此外,数据已包含您要修改的元素,因此无需在数据上调用getElementsByTagName
。
更改此行
data.getElementByTagName("td")[0].innerHTML = "Julius"
要
data.innerHTML = "Julius";
答案 2 :(得分:0)
这应该足够了。
function trans() {
var table = document.getElementById("table"),
tr = table.getElementsByTagName('tr')[2],
td = tr.getElementsByTagName('td')[0];
td.innerHTML = "Julius";
}
的问题:
.getElementsByTagName
代替.getElementsByTagName
;