
テーブルに表示されている値をマウスを利用して取得したいと
考えております。
質問箱及びいろいろ検索してみたのですが、いま一つ理解できません
でしたので、お力添えの方宜しくお願い致します。
今回お教え願いたい処理と致しましては、単純にHTML内のBodyタグ内に
記述されている<td>テスト</td>の値をマウスでクリックすると取得
するというものです。
この処理に関しまして、検索すると多くのサイト、書籍が見つかり、
手法なども記述されていましたが、具体的な利用方法が見つけられず、
困っております。
参考サイトへの誘導も大歓迎ですので、宜しくお願いします。
備考:この処理の解決方法に
>> tdに付けたイベントハンドラからXMLHttpRequestを呼ぶだけ。
引用サイト:「JavaScriptを教えてもらう」
というものがあったのですが、この利用方法が理解できませんでした。
大変お手数とは思いますが、利用方法をお教え願えれば幸いです。
何卒、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
一番簡単なのはクリックするtdにonClickを埋め込む
XMLHttpRequestを呼ぶfunctionを仮に「sample」として
<td onClick="sample(this)">テスト</td>
そうでないなら何かしらの方法でそのタグをクリックしたと検知する方法が必要になる。
DOMで埋め込むか、最初から上記のように明記しておくかの違いしか無いと思う。
ただし上記だとブラウザによってはtdの枠しか反応しない場合もあるので試験して挙動がおかしく感じたらdivでくくる等してくくった物にonClickを設定する方が良いかもしれない。
素早い回答、大変感謝致します。
早速試させていただき、マウスでテーブル内の値をクリックしますと
確かにonClickイベントが動作し、処理がsampleイベントハンドラへと
流れていました。
しかしながら、テーブル内の値である
<td onClick="sample(this)">テスト</td>
の "テスト" という値の取得方法が分かりませんでした。
alertを使い中身を表示させて確認したいのですが、
alert(document.フォーム名.elements.value);
alert(document.フォーム名.value);
等では値が取得できず、
alert(this);
alert(this.value);
にするとオブジェクトの種類を引数として取ってきてしまっています。
頂いた回答を生かせず申し訳なく思います。
宜しければ、値を変数に代入する方法もお教え願えませんでしょうか?
おんぶに抱っこ状態で大変失礼かと思いますが、宜しくお願いします。
No.6
- 回答日時:
#3です
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script type="text/javascript">
<!--
function sample(obj){
alert(obj.innerHTML);
}
//-->
</script>
</HEAD>
<BODY>
<form name = "form">
<table border = "1">
<tr>
<td onClick="sample(this)">テスト</td>
</tr>
</table>
</form>
</BODY>
</HTML>
ですね。
sample(this)としたときに渡されるthisはtdタグのことです。
それはわかりますか?それを引数としてわたしているのですから
適当な名前(ここではobj)として受け取らないといけません。
function sample(){
alert(this.innerHTML);
}
における、thisはsample()関数自身のことをさしていますので
ちょっとまとはずれになります。
度々のご回答、有難う御座います。
thisの違いをお教え頂いてから、調べて居りましたところ
yambejp様の様なプログラムを作成し、取り出す所までは
たどり着けました。
しかし、ぼんやりとしたイメージで利用&thisの利便性を
勉強しているうちに自分のしたいプログラム(テーブルから値の参照)
の意味が途轍もなく難しく感じてしまい、混乱しておりました。
分かりやすい解説を頂き、もう少し柔軟に考えることを覚える
いい機会だとお教え頂きました。
これから時間を掛け、オブジェクト指向の面白さ、便利さ、難しさ等
勉強をしていきたいと思います。
お付き合い頂き有難う御座いました。
No.5
- 回答日時:
>function sample(){
> alert(this.innerHTML);
>}
ここで書いているthisと
><td onClick="sample(this)">テスト</td>
ここでのthisが違う事に気付かない?
この回答への補足
アドバイスを頂き、有難う御座います。
申し訳ありません。
全く気付く事が出来ませんでした。
<td onClick="sample(this)">テスト</td>
のthisをsample関数の引数として取得できるものと思っており
まったく同一のモノとして捉えておりました。
恥ずかしながら、別モノとお教え頂いたのにも関わらず
どう変化しているのかも分りかねて居ります。
明日以降、時間を掛け理解に努めたいと思い
補足欄での記入とさせて頂きました。
今回のアドバイスを生かせるよう努力をし、利用できるようになれば
改めてお礼を投稿させて頂きたいと思います。
改めましてお礼申し上げます。
thisの用法を調べているうちに、何となくですがご指摘頂いた
意味が分かりかけて参りました。
使い方次第でとても便利に使えるものだということも学習できました。
使いこなせるようになるまでには、まだまだ時間がかかるかと
思いますがプログラムを勉強する上で、適切に御導き頂き、
今後の自分にも生かせていきたいと感じました。
お付き合い頂き、誠に有難う御座いました。
今後とも、ご機会があれば宜しくお願い致します。
No.4
- 回答日時:
>オブジェクトの種類を引数として取ってきてしまっています
http://www.tohoho-web.com/js/dom.htm#childNodes
オブジェクトなのだから単純にalertで表示したらstring変換によって型名が表示されるのは致し方ないと思う
ご指摘有難う御座います。
仰る通りだと思います。
参考サイトへの誘導、感謝致します。
他回答者様のアドバイスも含め、試行錯誤しておりますが、
現段階で良い返事をお返しすることが出来ず、申し訳ありません。
有名なサイト様への誘導、的確な参照場所を用意して下さったにも
かかわらず、技術力の無さで生かせないのが悔しくてなりません。
時間をかけて利用させて頂こうと思います。
一刻も早く良い返事をお聞かせ出来るよう、頑張りたいと思います。
No.3
- 回答日時:
> <td onClick="sample(this)">テスト</td>
>の "テスト" という値の取得方法が分かりませんでした。
this.innerHTMLで参照できませんか?
この回答への補足
値を取得するのみのソースなのですが、
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script type="text/javascript">
<!--
function sample(){
alert(this.innerHTML);
}
//-->
</script>
</HEAD>
<BODY>
<form name = "form">
<table border = "1">
<tr>
<td onClick="sample(this)">テスト</td>
</tr>
</table>
</form>
</BODY>
</HTML>
上記のプログラムで取得できるのでしょうか?
このプログラムですと undefine となってしまい、値を取得すること
ができません。
ご迷惑でなければ、お力添えを頂けないでしょうか?
回答有難う御座います。
私の技術・理解が足りないがために this.innerHTML では参照する
ことができませんでした。
折角のアドバイスを生かせず申し訳なく思います。

No.2
- 回答日時:
参考サイトへの誘導有難う御座いました!!
参考にさせて頂きます。
現質問よりもワンステップ上の事も書いていたので、今後に役立てたく
思います。
貴重なお時間を頂き、感謝するばかりです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- インターネットビジネス ペット用品のネットショップ運営で悩んでいる事があります。 詳しい方いらっしゃいましたらご教授の程宜し 2 2022/07/11 12:03
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- 統計学 母平均の検定(両側t検定)の問題 2 2023/03/14 20:02
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- Illustrator(イラストレーター) イラストレーターが買えない 1 2022/08/25 13:23
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- その他(ニュース・時事問題) 「マイナポイント」の登録について 5 2022/12/12 22:36
- 弁護士・行政書士・司法書士・社会保険労務士 政治家女子48党(旧NHK党)の登記が公開されない件について 3 2023/06/22 18:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンで選択すると、DBの...
-
チェックボックスにチェックが...
-
至急!GetElementById でtdの...
-
IEではうまく行くのですが他の...
-
テキストだけonCllickを検知したい
-
一覧から選択した行の行番号を...
-
onclickで画像と文字を別々の場...
-
ラジオボタンとセルの連動
-
特定<table>内の<td>の色を変える
-
JavaScriptで特定のtdタグにcla...
-
テーブルの項目の値取得
-
ブルダウン選択でページの表示...
-
エクセル VBA にて IE のボ...
-
二次元配列に数字をランダムに...
-
テーブルのセル数取得
-
指定した「曜日」の「時刻」に...
-
スクロールバーの表示位置を変...
-
マウスをブラウザの外に出した...
-
テーブルで複数行をまとめて非...
-
テーブル行のクリックでチェッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ハイパーリンクを別ウインドウ...
-
特定<table>内の<td>の色を変える
-
一覧から選択した行の行番号を...
-
tableの任意行にfocusをあてる
-
JavaScriptで特定のtdタグにcla...
-
プルダウンで選択すると、DBの...
-
Selenium.ChromeDriverの使い方...
-
チェックボックスにチェックが...
-
HTML中のTABLEのデータを抽出す...
-
マウスをブラウザの外に出した...
-
tdの中をクリックしたらチェッ...
-
至急!GetElementById でtdの...
-
IE以外でdisplay:noneで隠した...
-
テーブル内に表示されている数...
-
動的なtableの値を取得したい
-
テーブルの項目の値取得
-
クリックされた罫表セルの行番...
-
テーブル内に表示されている数...
-
Excelで作ったhtmlファイルのサ...
-
jqueryで表に連番No.を追加したい
おすすめ情報