单击 HTML 表格并获取行号(使用 Javascript,而不是 jQuery)

Posted

技术标签:

【中文标题】单击 HTML 表格并获取行号(使用 Javascript,而不是 jQuery)【英文标题】:Click on HTML table and get row number (with Javascript, not jQuery) 【发布时间】:2015-05-16 12:28:42 【问题描述】:

我想知道如何单击 html 表格中的按钮并获取返回给我的行号和列号:例如,使用下表:

<table>
  <tr>
    <td><input type="button" value="button"></td>
    <td><input type="button" value="button"></td>
    <td><input type="button" value="button"></td>
    </tr>
    <tr>
    <td><input type="button" value="button"></td>
    <td><input type="button" value="button"></td>
    <td><input type="button" value="button"></td>
    </tr>
    <tr>
    <td><input type="button" value="button"></td>
    <td><input type="button" value="button"></td>
    <td><input type="button" value="button"></td>
    </tr>
  </table>

如何使用 javascript 点击第二行的第一个按钮并让它告诉我点击了第二行的第一个单元格?每个按钮是否需要有唯一的 id?

【问题讨论】:

行有rowIndex。并且单元格有cellIndex。你可以使用它们like so ... 【参考方案1】:

试试这个代码: alert(document.getElementById("yourTableId").childNodes[1].childElementCount);

【讨论】:

虽然这段代码 sn-p 可以解决问题,但它没有解释为什么或如何回答这个问题。请include an explanation for your code,因为这确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。【参考方案2】:

@Gremash js 函数的最通用版本

function  getId(element) 
    alert("row" + element.closest('tr').rowIndex + 
    " -column" + element.closest('td').cellIndex);

【讨论】:

【参考方案3】:

试试这个:

function  getId(element) 
    alert("row" + element.parentNode.parentNode.rowIndex + 
    " - column" + element.parentNode.cellIndex);
<table>
  <tr>
    <td><input type="button" value="button" onclick="getId(this)"></td>
    <td><input type="button" value="button" onclick="getId(this)"></td>
    <td><input type="button" value="button" onclick="getId(this)"></td>
  </tr>
  <tr>
    <td><input type="button" value="button" onclick="getId(this)"></td>
    <td><input type="button" value="button" onclick="getId(this)"></td>
    <td><input type="button" value="button" onclick="getId(this)"></td>
  </tr>
  <tr>
    <td><input type="button" value="button" onclick="getId(this)"></td>
    <td><input type="button" value="button" onclick="getId(this)"></td>
    <td><input type="button" value="button" onclick="getId(this)"></td>
  </tr>
</table>

【讨论】:

您可以轻松地将其添加到 TD 并删除 parentNode 函数之一以不使用按钮。 我尝试“element.parentNode.parentNode.rowIndex”,但它返回未定义 超人......我得到了很多jQuery的解决方案。我想要在 Javascript 中。明白了.....

以上是关于单击 HTML 表格并获取行号(使用 Javascript,而不是 jQuery)的主要内容,如果未能解决你的问题,请参考以下文章

如何通过右键单击QTableView获取行号?

VBA代码获取单击按钮的行号

通过单击表格行获取字段 (td) 值

使用 Ctrl+单击和 Shift+单击选择多个 HTML 表格行

在 vb.net 的 datagridview 中添加行号

QT: QTableWidget 表格中按钮槽函数 获取表格该按钮所在的行号信息