Javascript获取(this)行中特定表格单元格中的文本

时间:2018-01-26 19:37:48

标签: javascript typescript ecmascript-6

我有一个动态创建的表。 每行都有一个按钮。

当我按下一行上的按钮时,我希望它能在特定单元格中获取文本。

这样的事情:

我有一张这样的表:

<table>
    <tr>
        <td>Test 1 Here</td>
        <td>Other Text Here</td>
        <td><button onclick="getData(this.cell[1].innerHtml)">Get Data</button></td>
    </tr>
</table>

如何使用纯javascript或打字稿?

2 个答案:

答案 0 :(得分:1)

我认为您正在尝试获取第一个单元格文本,您可以使用parentNode / childNodes获取行中所有tds的列表,然后选择你想要的索引。

function getData(x)
{
console.log(x.parentNode.parentNode.childNodes[1].innerHTML)
console.log(x.parentNode.parentNode.childNodes[3].innerHTML)
}
<table>
    <tr>
        <td>Test 1 Here</td>
        <td>Other Text Here</td>
        <td><button onclick="getData(this)">Get Data</button></td>
    </tr>
</table>

答案 1 :(得分:0)

在你的getData函数设置中,this将引用被点击的按钮 - 按钮没有“cell”属性。

我建议:

<button onclick="getData(this)">Get Data</button>

然后

function getData(btn) {
  var tr = btn.parentNode.parentNode; // the parent of btn is the td, the parent of td is the tr.
  var td = tr.getElementsByTagName("td")[0]; // get the first TD in the TR
  console.log(td.innerHTML); // log the content of the TD
}