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

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

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

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

Q&A

解決済

3回答

16776閲覧

javascriptにて、ボタン押下時にtableの行要素を取得する方法

Martinez4_46

総合スコア16

JavaScript

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

0グッド

0クリップ

投稿2018/04/11 00:36

javascriptについての質問です。

htmlで以下のような表を作成しました。

イメージ説明

やりたいことは、列Dのボタン押下時、同じ行の要素を取得することです。
例えば、ボタン3押下時、「う」、「く」、「す」を取得したいです。

すみませんが、どなたかお教えいただけませんでしょうか。

以上、よろしくお願いいたします。

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

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

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

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

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

m.ts10806

2018/04/11 00:38

htmlをご提示ください。また質問に至る前に何かしら調べてみたこと、やってみたことをご提示ください。(調べず・やってみていないのであれば、まず調べてやってみてから質問するのがこのサイトのルールです)このままでは「丸投げ質問」となり、回答が得られにくくなります。 https://teratail.com/help/question-tips#questionTips1-2
yambejp

2018/04/11 00:41

「取得する」とは具体的にどうしたいのでしょうか?配列にセットしたい?クリップボートにコピーしたい?
guest

回答3

0

テーブルタグでクリックイベントをリッスンし,イベントをキャッチしたらそのターゲットのクローセストテーブルロウを取得した後, そのチャイルドノードを取得すれば可能です.

JavaScript

1table.onclick = e => (t => t.type == "button" && [].forEach.call(t.closest("tr").childNodes, el => el.querySelector("input") || console.log(el.textContent)))(e.target);

投稿2018/04/11 00:40

編集2018/04/11 01:03
defghi1977

総合スコア4756

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

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

Martinez4_46

2018/04/11 08:29

ご回答、ありがとうございました。
defghi1977

2018/04/11 08:31

次回からはご自分のコードを掲載して下さい. 答える方としても, あなたのスキルの到達度を推し量ることができ, より的確な回答を提示できるようになります.
Martinez4_46

2018/04/11 08:48

承知いたしました。 アドバイス、ありがとうございました。
guest

0

JavaScript

1document.querySelector('table').addEventListener('click', function(event) { 2 const button = event.target.closest('[type="button"]'); 3 if (!button) { 4 return true; 5 } 6 7 const tr = button.closest('tr'); 8 console.log(tr.cells[0].textContent, tr.cells[1].textContent, tr.cells[2].textContent); 9 return true; 10});

Element.closest() Polyfill
https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill

投稿2018/04/11 02:21

x_x

総合スコア13749

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

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

yambejp

2018/04/11 02:38

closest()は残念ながら実装が遅れたのでIEでは非対応ですよね いまさらIE対応を目指す必要ないかもしれませんが
Martinez4_46

2018/04/11 08:22

ご回答、ありがとうございました。
guest

0

ベストアンサー

たとえばこう

javascript

1<script> 2document.addEventListener('click',function(e){ 3 var t=e.target; 4 if(t.nodeName=="INPUT" && t.type=="button"){ 5 var a=Array.prototype.map.call(t.parentNode.parentNode.querySelectorAll('td'),function(n){ 6 return n.textContent; 7 }).filter(function(v){ 8 return v!==""; 9 }); 10 console.log(a); 11 } 12}); 13</script> 14 15<table border> 16<thead> 17<tr><th>A</th><th>B</th><th>C</th><th>D</th></tr> 18</thead> 19<tbody> 20<tr><td></td><td></td><td></td><td><input type="button" value="b1"></td></tr> 21<tr><td></td><td></td><td></td><td><input type="button" value="b2"></td></tr> 22<tr><td></td><td></td><td></td><td><input type="button" value="b3"></td></tr> 23<tr><td></td><td></td><td></td><td><input type="button" value="b4"></td></tr> 24<tr><td></td><td></td><td></td><td><input type="button" value="b4"></td></tr> 25</tbody> 26</table>

投稿2018/04/11 00:50

yambejp

総合スコア114777

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

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

Martinez4_46

2018/04/11 08:28

ご回答、ありがとうございました。 やりたかったことが実現できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問