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

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

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

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

620閲覧

this について分からないことがあったので教えてほしいです。

norino

総合スコア10

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/12/30 05:45

編集2019/12/30 05:47

jQuery の on の中での this の使い方について。

いつも this を何となく使っていましたが、

ネットでみかけたサンプルを見たときに、

この this はどこを参照しているのか わからなくなったので教えてほしいです。

すごく簡単なことなんだど思いますが、よろしくお願いいたします。

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>this???</title> </head> <style> .box { width: 50%; height: 100px; margin: 0 auto 10px; background-color: bisque; } p { margin: 0; font-size: 30px; line-height: 100px; text-align: center; color: #000; } .change { color: #ff0000; } </style> <body> <div class="box"> <p>今回のthisがわかんない。</p> </div> <div class="box"> <p>今回のthisがわかんない。</p> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script> $('.box').on({ mouseenter: function (e) { $(this).find('p').toggleClass('change'); console.log(this); this.x = e.pageX; this.y = e.pageY; $(this).find('p').text('x ' + this.x + ' : ' + 'y ' + this.y); }, mouseleave: function (e) { $(this).find('p').toggleClass('change'); console.log(this.x); console.log(this.y); } }); </script> </body> </html>

ネットのサンプルから、this の使い方だけ抜き出してきました。

ここでは単純に on を使って .box のなかにマウスが入った瞬間の座標を取得したり、

文字の色を変えたりするコードです。やっていることに意味はありません。

this の参照先が分からなくなった。

いつも on の中で this を使うときといったら、

今回のように $(this) でマウスが進入していった $('.box') に .find したり

.css で css をいじったりします。

または console.log(this) と書いて参照先をチェックしたりですよね。

ただ今回は、this.x とかってやっていたんですよ。

ここでプロパティを追加したことなかったので、というか見たこともなかったので

そんなことできるの??? ってなりました。

console.log(this)で確認しても

<div class="box">..</div>

しかでてこないし、x や y はどこいった??? どうやったら中身が見れる???

mouseleave のなかでも this.x で参照できるし、mouseenter の中だけじゃないの???

と、混乱し始めました・・・。


この this.x とかの this はどこを指しているんでしょうか?

この x や y はどこにあるんでしょうか? どうやったら console とかで見れるのでしょうか?

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

どうやったら console とかで見れるのでしょうか?

console.dir()を試してみてください。

【console.dir() - JSONツリー形式でオブジェクトを出力する | Consoleリファレンス】
https://lab.syncer.jp/Web/API_Interface/Reference/IDL/console/dir/ (更新:URLを修正)

投稿2019/12/30 05:52

編集2019/12/30 07:44
kei344

総合スコア69400

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

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

kei344

2019/12/30 07:44

To: hatena19さん ご指摘ありがとうございます、修正しました。
norino

2020/01/02 04:49

お返事遅くなって、すいません。 kei344さん、hatena19さん、ありがとうございました。 console.logしか使ったことなく、他の機能のconsole試してなかったです。 大変勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問