Javascript从html表的特定行获取列的文本值

Mir*_*ror 16 html javascript row html-table

用户点击表格的一行,我想(在Javascript中)得到该行的第3列的内部HTML.

就像是 :

document.getElementById("tblBlah").rows[i].columns[j].innerHTML
Run Code Online (Sandbox Code Playgroud)

似乎无法实现,我在这里或网上找不到任何东西.

任何解决方案将非常感谢(没有jQuery)

Eli*_*gem 36

document.getElementById("tblBlah").rows[i].columns[j].innerHTML;
Run Code Online (Sandbox Code Playgroud)

应该:

document.getElementById("tblBlah").rows[i].cells[j].innerHTML;
Run Code Online (Sandbox Code Playgroud)

但我得到的明显印象是,您需要的行/单元格是用户单击的行/单元格.如果是这样,实现此目的的最简单方法是将事件附加到表中的单元格:

function alertInnerHTML(e)
{
    e = e || window.event;//IE
    alert(this.innerHTML);
}

var theTbl = document.getElementById('tblBlah');
for(var i=0;i<theTbl.length;i++)
{
    for(var j=0;j<theTbl.rows[i].cells.length;j++)
    {
        theTbl.rows[i].cells[j].onclick = alertInnerHTML;
    }
}
Run Code Online (Sandbox Code Playgroud)

这使得所有表格单元格都可以点击,并提醒它的innerHTML.事件对象将传递给alertInnerHTML函数,其中this对象将是对单击的单元格的引用.如果单击单元格中有链接,事件对象为您提供了大量关于单击事件如何表现的巧妙技巧,但我建议检查MDN和MSDN(对于window.event对象)


小智 5

如果你的桌子有 tbody

let tbl = document.getElementById("tbl").getElementsByTagName('tbody')[0];
console.log(tbl.rows[0].cells[0].innerHTML)
Run Code Online (Sandbox Code Playgroud)