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

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

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

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

Q&A

解決済

2回答

1238閲覧

jqueryでclassの指定の仕方について

momokae0416

総合スコア9

jQuery

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

0グッド

0クリップ

投稿2020/02/08 03:49

jquery初心者です。課題で以下のようなルーレットを作っています。

1.ルーレットの目を16個作成する
2.スタートボタンを押すとルーレットが回転する
3.回転中はスタートボタンを押せなくする(ストップボタンで再び押せるようになる)
4.ルーレットの回転にランダム要素を組み込む
5.ルーレットが回っているときに、ストップボタンを押すとルーレットが止まる
6.リセットボタンを押すと初期表示の状態に戻る(もしルーレットが回っている場合はルーレットの回転が止まり、初期表示の状態になる)

ネットで他の方の実装方法など参考にし、実装はできたと思うのですが、classの指定の仕方で分からないことがあり教えてほしいです。

15行目のこちらの部分なのですが、

var td = $('<td class="num' + (i+j) +'">');

classをclass=""のように、囲むのは分かりますが、なぜ + (i+j) + の部分も
' ' で囲わなくてはいけないのでしょうか…
そしてこの部分は、ダブルクォーテーションでなくシングルクォーテーションでないと、動きませんでした。
ダブルクォーテーションの中にもう一つクォーテーションを入れるときはシングルじゃないといけないのでしょうか。

何卒宜しくお願い致します。

↓ルーレット↓

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="roulette.css"> <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script> $(function(){ var number = 0; var interval_id; for (var j = 0; j <= 12; j+=4){ var tr = $("<tr>"); for (var i = 1; i <= 4; i++){ var td = $('<td class="num' + (i+j) +'">'); td.html(i+j); tr.append(td); } $("#matrix").append(tr); } $("#start").on("click",function(){ interval = setInterval(count,100); $("#start").prop("disabled",true); }); $("#stop").on("click",function(){ clearInterval(interval); $("#start").prop("disabled",false); }); $("#reset").on("click",function(){ clearInterval(interval); $(".num" + number).css("background-color","#ffffff"); $("#start").prop("disabled",false); }); function count(){ $(".num" + number).css("background-color","#ffffff"); number = 1 + Math.floor(Math.random()*16); $(".num" + number).css("background-color","#f08080"); } }); </script> </head> <body> <div id="rouolette"> <table id="matrix"> </table> <div id="button_erea"> <button id ="start">スタート</button> <button id ="stop">ストップ</button> <button id ="reset">リセット</button> </div> </div> </body> </html>

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

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

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

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

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

guest

回答2

0

ベストアンサー

js

1'<td class="num' 2 + 3(i+j) 4 + 5'">'

ということです。

ダブルクォーテーションの中にもう一つクォーテーションを入れるときはシングルじゃないといけない

エスケープでも大丈夫です。

js

1"\""

投稿2020/02/08 03:59

Lhankor_Mhy

総合スコア36960

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

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

momokae0416

2020/02/08 04:38

エスケープ今知りました!ありがとうございます。 var td = $('<td class="num' + (i+j) +'">'); をエスケープで表現するにはどのようにしたらよいでしょうか?
momokae0416

2020/02/08 05:01

ありがとうございました! 理解いたしました。エスケープも理解することができたのでベストアンサーとさせていただきます。
guest

0

'文字列' + (i+j) +'文字列'としているだけです。

【文字列演算子 - JavaScript リダイレクト 1 | MDN】
https://developer.mozilla.org/ja/docs/JavaScript/Reference/Operators/String_Operators

投稿2020/02/08 03:54

kei344

総合スコア69606

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

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

momokae0416

2020/02/08 04:06

早速のご回答ありがとうございます!!(i+j)をカッコでくくっていると勘違いしてました…! シングルクォーテーションとダブルクォーテーション2種使うのでなく、全部ダブルクォーテーションにすると効かなくなるのは、どこを囲んでいるかシステムが判断できなくなるからでしょうか??
kei344

2020/02/08 04:11

そうです。
momokae0416

2020/02/08 04:39

ありがとうございます!!理解できました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問