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

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

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

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

Q&A

1回答

2010閲覧

javaScriptで編集可能なtableからリアルタイムに値を取得したい

whiteman

総合スコア8

JavaScript

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

0グッド

0クリップ

投稿2020/06/02 12:58

前提・実現したいこと

javaScriptで編集可能なtableからリアルタイムに値を取得したいです。
下記のサイトではjQueryで実現されてるのですが、知識が乏しいために活用できませんでした。
http://kachibito.net/snippets/contenteditable-table-and-live-bar-chart
グラフにしたいわけではなく単に値だけ取得できれば幸いです。

発生している問題・エラーメッセージ

テーブルの編集は可能だが入力値が反映されない。

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

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

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

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

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

miyabi_takatsuk

2020/06/02 13:00

今質問者さんが書いてる段で構いませんので、自身のコードを質問本文に記載お願いします。
m.ts10806

2020/06/02 13:07

今どういうコードを書いたか分からないですが、自身である程度手に負える範囲から攻めていかないことには何も身に付かないと思います。
yambejp

2020/06/02 16:12

まずは「編集可能なtable」の定義をするところからでしょう
guest

回答1

0

こんな感じで監視するといいでしょう

javascript

1<style> 2td{width:100px;height:100px;text-align:center;} 3</style> 4<script> 5window.addEventListener('DOMContentLoaded', ()=>{ 6 const view=document.querySelector('#view'); 7 const tbl=document.querySelector('#tbl'); 8 const observer = new MutationObserver((mutations) => { 9 mutations.forEach((mutation) => { 10 view.textContent=tbl.textContent; 11 }); 12 }); 13 const config = { attributes: true, childList: true, characterData: true }; 14 document.querySelectorAll('[contenteditable]').forEach(x=>{ 15 observer.observe(x, config); 16 observer.observe(x.firstChild, config); 17 [...x.childNodes].forEach(y=>{ 18 observer.observe(y, config); 19 }); 20 }); 21}); 22</script> 23<table border id="tbl"> 24<tbody> 25<tr> 26<td contenteditable>1</td> 27<td contenteditable>2</td> 28<td contenteditable>3</td> 29</tr> 30<tr> 31<td contenteditable>4</td> 32<td contenteditable>5</td> 33<td contenteditable>6</td> 34</tr> 35<tr> 36<td contenteditable>7</td> 37<td contenteditable>8</td> 38<td contenteditable>9</td> 39</tr> 40</tbody> 41</table> 42<div id="view"></div>

投稿2020/06/02 16:39

編集2020/06/02 16:51
yambejp

総合スコア115010

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

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

whiteman

2020/06/03 04:22

初心者で性格が横着なので既存のサイトのソースをいじって実現できないかと試行錯誤しています。 なので恥ずかしくて、お見せできるようなコードではないと躊躇してしまいました。 yambejpさんのコードを参考にやってみます。回答いただいた皆さんありがとうございました。
yambejp

2020/06/03 05:11

私の書き方だと微妙に反応しないノードがあります どこまで調整が必要か検討してみてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問