使用javascript更改表td

时间:2016-09-22 12:16:46

标签: javascript html css simple-html-dom

我是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

3 个答案:

答案 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";
}

的问题:

  1. 为了选择某个键&#34; [2]&#34;您需要使用.getElementsByTagName代替.getElementsByTagName;
  2. 您定位错误的 tr 。桌头上有tr。因此,即使修复了1号问题,也无法获得正确的结果。