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

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

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

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

jQuery

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

Q&A

解決済

1回答

1656閲覧

var $this = $(this);の意味

imamoto_browser

総合スコア1161

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2017/07/23 07:44

編集2017/07/23 08:03

javascript

1 //セレクトボックスが切り替わったら発動 2 $("input[name='radio']:radio").change(function() { 3 var $this = $(this); 4 });

上記ソースコードで、var $this = $(this);の部分はどういう意味があるのでしょうか。ぐぐると、$thisは
DOMエレメントのプロパティやメソッドを使うときはthis

jQueryオブジェクトのメソッドを使いたいときは$(this)

となっていますが、$(this)はグローバル変数ってことでしょうか。解説サイトによると、どちらを使ってもいいとなっているので、なぜこのような代入処理が必要なのかよくわからなかったので質問しました。

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

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

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

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

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

kei344

2017/07/23 07:55

書かれているコードがJavaScriptの構文上正しくないように見えるのですが、省略されていませんか?
imamoto_browser

2017/07/23 07:57

かっこが抜けていたようです。加筆しました。
imamoto_browser

2017/07/23 08:04

動くものに差し替えました。よろしくお願いします。
guest

回答1

0

ベストアンサー

$(this)はグローバル変数ってことでしょうか。

この場合function(){}に渡されるthisはイベントが起こったDOM要素です。それをjQueryとして使うために var $this = $( this ); としているのでは。サンプルを見てもらえばわかると思いますが、対象のdiv.image select が複数有る場合、どこでイベントが起こっているかを特定するときなどにそういう書き方をします。

JavaScript

1//セレクトボックスが切り替わったら発動 2$( 'div.image select' ).on( 'change', function() { 3 var $this = $( this ); 4 $( 'div.image' ).removeClass( 'active' ); 5 $this.parent().addClass( 'active' ); 6} ); 7```**動くサンプル:**[https://jsfiddle.net/djg8dk6w/1/](https://jsfiddle.net/djg8dk6w/1/)

投稿2017/07/23 08:10

編集2017/07/23 08:11
kei344

総合スコア69364

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

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

imamoto_browser

2017/07/23 08:21

サンプルを提示していたたき、ありがとうございます。 サンプルをいろいろいじってみて、なんとなく挙動が理解できたかなって感じです。 要は、jQueryオブジェクトをDOMエレメントに渡してあげないと、どこのdivのimageが更新されたかわからないよってことですね。 書式によっては、$(this)を使わなくてもいけそうですが、 var $this = $( this );は よく見るコードなので、この機会に理解出来てよかったと思います。
imamoto_browser

2017/07/23 08:25

ちなみに、$this.parent().addClass( 'active' );ってparent()を入れないと、セレクトボックスのバックだけ色変わりますけど、全体の背景色のときはparentなんですよね。その辺の親子関係についてわかりやすく解説してるサイトってありますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問