質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1604閲覧

動的確保したtableをクリックでID取得したい

ssh_u

総合スコア34

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2018/09/20 12:17

前提・実現したいこと

題名にもかいてある通りIDを取得したいです。

該当のソースコード

javascript

1// 表の動的作成 2function makeTable(data, tableId){ 3 // 表の作成開始 4 var rows=[]; 5 var table = document.createElement("table"); 6 7 // 表に2次元配列の要素を格納 8 for(var i = 0; i < 18; i++){ 9 rows.push(table.insertRow(-1)); // 行の追加 10 for(var j = 0; j < 18; j++){ 11 cell=rows[i].insertCell(-1); 12 if(i == 0){ 13 cell.id = 'num'+(j+1); 14 } 15 else if(j == 17){ 16 cell.id = 'kan'+ i; 17 } 18 else{ 19 cell.id = 'cell'+(i+1)+'-'+(j+1); 20 } 21 cell.appendChild(document.createTextNode(name[data[i][j]])); 22 //cell.style.backgroundColor = "#ddd"; 23 } 24 } 25 // 指定したdiv要素に表を加える 26 document.getElementById(tableId).appendChild(table); 27} 28 29$('td').click(function(){ 30 //縦 31 var row = $(this).closest('tr').index(); 32 //横 33 var col = this.cellIndex; 34 console.log('Row: ' + row + ', Column: ' + col); 35});

試したこと

ここで取得しようとしてるんですがうまくいきません

$('td').click(function(){ //縦 var row = $(this).closest('tr').index(); //横 var col = this.cellIndex; console.log('Row: ' + row + ', Column: ' + col); });

補足情報(FW/ツールのバージョンなど)

わかりにくい説明だと思いますがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

$('td').click(function(){
こう書くと、これが実行される瞬間にDOMに存在するtdしか対象にできません。

動的に作成するのであれば、
document.getElementById(tableId).appendChild(table);によってDOMに追加した直後に登録するか、または以下のようにイベントハンドラを登録してみてください。

$(document).on('click', 'td', function() { // ハンドラの中身 });

投稿2018/09/20 12:42

spookybird

総合スコア1803

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssh_u

2018/09/20 12:46

ありがとうございます 取得できました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問