ユーザーがテーブルの行をクリックし、その行の3番目の列のinnerhtmlを(Javascriptで)取得したいとします。
何かのようなもの :
document.getElementById("tblBlah").rows[i].columns[j].innerHTML
達成できないようで、ここやネットで何も見つかりません。
任意のソリューションをいただければ幸いです(jQueryはありません)
ユーザーがテーブルの行をクリックし、その行の3番目の列のinnerhtmlを(Javascriptで)取得したいとします。
何かのようなもの :
document.getElementById("tblBlah").rows[i].columns[j].innerHTML
達成できないようで、ここやネットで何も見つかりません。
任意のソリューションをいただければ幸いです(jQueryはありません)
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オブジェクトの場合)を確認することをお勧めします。
テーブルにtbodyがある場合
let tbl = document.getElementById("tbl").getElementsByTagName('tbody')[0];
console.log(tbl.rows[0].cells[0].innerHTML)
HTMLコードを取得するには:
document.getElementById("table").rows[i].cells[j].innerHTML;
テキストを取得するには:
document.getElementById("table").rows[i].cells[j].innerText;