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

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

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

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

Q&A

解決済

1回答

4768閲覧

jQueryのセレクタ内で変数を使用する方法について

r3333

総合スコア1

jQuery

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

0グッド

1クリップ

投稿2020/06/15 14:03

現在モーダルウィンドウを実装しようとしているのですが、each文で繰り返し表示している部分から発火させようとしているため、クリックした箇所のdata-idを取得して、それに対応するdata-idを持つ要素をモーダルウィンドウで表示させようとしています。

jQuery

1$(function(){ 2 $('.js-modal-open').on('click',function(){ 3 let tasklist = $(this).data("id") 4 console.log(tasklist) 5 $('.js-modal[data-id = "tasklist"]').fadeIn(); 6 return false; 7 }); 8});

現在の記述は上記のようになっています。
console.logには1や2などのdata-idに入っている値が表示されています。

.js-modalクラスの中でdata-idがtasklistになっている物を指定して表示されるようにしたいのですが、

$('.js-modal[data-id = "tasklist"]').fadeIn();

このように書いても変数が上手く使えていないようで、うまく機能してくれません。

「jQuery セレクタ 変数」などで調べてみたら+を使用する方法なども書かれていたので、色々と試して見たのですが、上手くいかず・・・。

また、

$('.js-modal[data-id = "1"]').fadeIn();

試しに上記のように記述を変えたら.js-modalクラスのdata-idが1になっている物が表示されたので、やはり変数の記述が間違っているのかなと考えております。

jQueryのセレクタ内で変数を使用する方法を教えていただけたらと思います。

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

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

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

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

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

guest

回答1

0

ベストアンサー

js

1// $('.js-modal[data-id = "tasklist"]').fadeIn(); 2// ↓ 3 $( '.js-modal[data-id = "' + tasklist + '"]' ).fadeIn();

投稿2020/06/15 14:04

kei344

総合スコア69458

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

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

r3333

2020/06/15 14:13

ありがとうございます!!無事に表示できました! ""で囲っている部分はdata-idの値を示すための物だと思うので理解できるのですが、 ''で囲っている部分('+ tasklist +')はどういった意味合いの物になるのでしょうか?
kei344

2020/06/15 14:26

ちがうちがう、 .js-modal[data-id = " という文字列と tasklist という変数の中身と "] という文字列を足して .js-modal[data-id = "中身"] という文字列を作ってjQueryに渡しているだけです。 +は文字列連結。 【テキストを扱う — JavaScript での文字列 - ウェブ開発を学ぶ | MDN】 https://developer.mozilla.org/ja/docs/Learn/JavaScript/First_steps/Strings
r3333

2020/06/15 14:57

丁寧な返信ありがとうございます! なるほど・・・+で連結させて文字列を作っているのですね。理解できました。 +で文字列を連結させるというイメージだと、 [data-id = " + tasklist + "] や [data-id = " + 'tasklist' + "] でも問題なさそうに見えるのですが、どちらも試してみるとエラーになりました。 「+ tasklist +」の部分を' 'で囲っているのはなぜなのでしょうか? セレクタ内で変数を使う時は+を含めて' 'を使うということなのでしょうか? (質問ばかりで申し訳ございません)
r3333

2020/06/15 15:10

あ・・・すいませんなんかとんでもなく勘違いしてしまっていました。 改めて参考URL及び一個前の返信を確認したら何と何を連結させているのかを理解することができました。 丁寧に教えていただきありがとうございました。大変参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問