web-dev-qa-db-ja.com

Javascriptは、htmlテーブルの特定の行から列のテキスト値を取得します

ユーザーがテーブルの行をクリックし、その行の3番目の列のインナーHTMLを(Javascriptで)取得したい。

何かのようなもの :

document.getElementById("tblBlah").rows[i].columns[j].innerHTML

達成できないようで、ここやネットには何も見つかりません。

どんなソリューションでも大歓迎です(jQueryなし)

15
MirrorMirror
document.getElementById("tblBlah").rows[i].columns[j].innerHTML;

する必要があります:

document.getElementById("tblBlah").rows[i].cells[j].innerHTML;

しかし、必要な行/セルはユーザーがクリックしたものであるという明確な印象を受けます。その場合、これを実現する最も簡単な方法は、テーブル内のセルにイベントを添付することです。

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;
    }
}

これにより、すべてのテーブルセルがクリック可能になり、innerHTMLになります。イベントオブジェクトはalertInnerHTML関数に渡され、thisオブジェクトはクリックされたセルへの参照になります。イベントオブジェクトは、たとえばクリックされたセルにリンクがある場合にクリックイベントをどのように動作させるかについて、たくさんの巧妙なトリックを提供しますが、MDNとMSDN(window.eventオブジェクト)を確認することをお勧めします

35

テーブルにtbodyがある場合

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