JavaScriptでtableの値を取得する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptでtableの値を取得する方法について現役エンジニアが解説しています。tableの値を取得するには、まずは要素を取得します。rowsやcellsというプロパティに行の情報やセルの値が入っています。また、直接td要素を取得して値を取得する方法もあります。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

JavaScriptでtableの値を取得する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、JavaScriptに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

JavaScriptでtableの値を取得する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

はじめに

今回はJavaScriptからtableタグの特定のセルの値を取得する方法について学びます。

サーバサイドで作成した動的なtableタグ内の値を、画面上で別の箇所に表示したい場合や、判定などを行う際の文字列を取得するときに役立ちます。

表を作成する際には、tableタグの代わりにdivタグを使うこともありますが、まだtableタグは多くのサイトで使われていますので、ぜひこの機会にtableタグもJavaScriptで扱えるように学びましょう。

 

table要素を取得する方法

他のHTML要素と同じように取得できます。

例えば、idを設定している場合は、下記のようにgetElementByIdメソッドで取得します。

document.getElementById(【IDの名前】);

 

[PR] フロントエンドで挫折しない学習方法を動画で公開中

tableの行数、列数を取得する方法

取得したテーブル要素であるHTMLTableElementには、行の情報を持つrowsというプロパティがあります。

このrowsプロパティの数(length)が行の数です。

HTMLTableElement.rows.length

 

同じように行の要素であるHTMLTableRowElementには、セルの情報を持つcellsというプロパティがあります。

このcellsプロパティの数(length)が列の数です。

HTMLTableRowElement.cells.length

 

tableの値を取得する方法

テーブルの値はそれぞれのcell(枠)の中に入っています。

つまりcellの中の値を取得することでテーブルの値を取得できます。

HTMLTableCellElement.innerHTML

 

実際に書いてみよう

まずはHTMLでテーブルを用意します。

JavaScriptからのアクセス用に、idをtargetTableという名前で設定しています。

<table border="1" id="targetTable">
    <thead>
        <tr>
            <td>名前</td>
            <td>年齢</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>鈴木</td>
            <td>12</td>
        </tr>
        <tr>
            <td>山田</td>
            <td>18</td>
        </tr>
    <tbody>
</table>

 

下記のようなテーブルができました。

HTMLのテーブル要素の値をJavaScriptで取得するためのサンプルテーブル。

 

このテーブルの値をJavaScriptで取得してみます。

let table = document.getElementById('targetTable');

for (let row of table.rows) {
    for(let cell of row.cells){
       console.log(cell.innerText);
    }
}

 

解説

document.getElementById(‘targetTable’)にて、HTMLのテーブルを取得しています。

取得したテーブルの行のループでセルを取り出し、セルのループで値を取り出すという流れです。

今回は取り出した値をコンソールに出力していますが、値を判定していろいろな処理を実装できます。

table.rowsですべての行を取得、row.cellsで行の中のすべてのセルを取得です。

 

テーブルの値を取得するパターンをもう1つ紹介します。

先程はHTMLのテーブル構造に合わせてループしました。

特定の行やセルに処理を行う場合はループさせることになりますが、今回のようにただすべての値を取得する場合は、セル(tdタグ)の値をすべて取れば良いので、下記のように簡略化できます。

let table = document.getElementById('targetTable');
let cells = table.querySelectorAll('td');
cells.forEach( (cell) =>  console.log(cell.innerHTML));

 

まとめ

今回はJavaScriptでtableタグ内の値を取得する方法を学びました。

table.rowsで行が取得でき、row.cellsで行内の列を取得できました。

JavaScriptだけでなく他の言語でも、2次元表を同じように扱えます。

また、table.rowsの配列オブジェクトは、値だけでなく行数なども取得できますので、ぜひページング処理などの実装にも挑戦してみてくださいね。

 

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

JavaScriptを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのフロントエンドコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaScript・jQueryを使ったWebサービス開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!