从TypeScript中的行ID获取表行索引

时间:2017-11-10 07:24:47

标签: html angular typescript

我有一张桌子。每行都有一个ID。

我是否可以仅使用其ID(无点击)并且不使用循环来获取任何行的索引?

我的HTML看起来像这样:

<table id="tabId">
<tr id="a">
    <td>ss</td>
    <td>ss</td>
</tr>
<tr id="b">
    <td>kk</td>
    <td>kk</td>
</tr> 

我试过了:

var row_number = document.getElementById('a').rowIndex;

但它不起作用;我得到一个error message说:

  

[ts]'HTMLElement'类型中不存在属性'rowIndex'。

6 个答案:

答案 0 :(得分:2)

您忘了将''添加到getElementById()功能,而您写的rowIndex并非属性和错误。

这是一个有效的例子:

var row_number = document.getElementById('a').rowIndex;
alert(row_number);
<table id="tabId">
<tr id="a">
    <td>ss</td>
    <td>ss</td>
</tr>
<tr id="b">
    <td>kk</td>
    <td>kk</td>
</tr> 

答案 1 :(得分:2)

var el = (document.getElementById('b')) as HTMLTableRowElement;
console.log(el.rowIndex);

答案 2 :(得分:0)

var rows = Array.prototype.slice.call(document.getElementById('tabId').rows);
var row = document.getElementById('b');

console.log(rows.indexOf(row));

这是Example

答案 3 :(得分:0)

特别感谢@durga的解决方案。我通过显式键入变量来修复它。

var el : any = (document.getElementById('a')) as HTMLTableElement;
var index = el.rowIndex;
console.log(index);  

答案 4 :(得分:-1)

您可以使用on click on particulate tr获取index

或将Rowindex更改为rowIndex并在''

中添加id of div 'a' in script

&#13;
&#13;
function myFunction(x) {
  console.log("Row index is: " + x.rowIndex);
}
&#13;
<table id="tabId">
  <tr id="a" onclick="myFunction(this)">
    <td>ss</td>
    <td>ss</td>
  </tr>
  <tr id="b" onclick="myFunction(this)">
    <td>kk</td>
    <td>kk</td>
  </tr>
&#13;
&#13;
&#13;

答案 5 :(得分:-2)

document.getElementsByTagName("tr")[index].id;


<table id="tableId">
    <tr id="a">
        <td>a</td>
    </tr>
    <tr id="b">
        <td>b</td>
    </tr>
</table>

var table = document.getElementById("tableId");
var row = table.rows[index];
console.log(row.id);