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

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

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

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

835閲覧

jQueryのCSSメソッドで、複数プロパティをまとめた書き方について

ync_pp

総合スコア11

jQuery

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/02/07 07:08

編集2020/02/07 09:42

jQueryのCSSメソッドで、複数プロパティをまとめた書き方を調べているときに、あるTIPS記事に以下のような例がありました。そこで分からない点がありましたので、質問させてください。

jQuery

1// 例1 変数に入れる 2var p_props = { 3 "color" : "red", 4 "font-size" : "16px", 5 "font-weight" : "bold" 6} 7 8// 例2 9var p_props = { 10 color : "red", 11 fontSize : "16px", 12 fontWeight : "bold" 13} 14 15// 例3 16$("p").css({ 17 "color" : "#f00", 18 "font-size" : "28px", 19 "font-weight" : "bold" 20}); 21 22// 例4 23$("p").css({ 24 color : "red", 25 font-size : "16px", 26 font-weight : "bold" 27});
  • 「例1」は、CSSプロパティは文字列となるため、クオートで囲われている (この{}はグループ化)
  • 「例2」は、キャメルケースを使用しているため、クオートの省略が可能 (この{}はオブジェクト)
  • 「例3」は、CSSプロパティは文字列となるため、クオートで囲われている (この{}はグループ化)
  • 「例4」は、このCSSプロパティは文字列では? (この{}はグループ化?)

<質問1>
「例1~4」の書き方でそれぞれ試してみたのですが、「例4」では'SyntaxError'となりました。
他の参考サイトではこのような書き方は見当たらなかったので、「例4」は単に記事上の記述ミスでしょうか。

まだ「{}」の意味や「オブジェクト」という考え方も曖昧で理解が追い付いていないので、調べている内に混乱してしまいました。


<質問2>
また、こちらのサイトに以下のようにあったのですが、自分の書いている練習用コードで "first-name" を first_name にするとエラーは出ませんでしたが、この行のみスルーされたようでした。これはjQueryだからでしょうか。

プロパティ名の前後に付けるクオート("")は、文字列が予約語ではなく、JavaScriptの名前に則っていれば、省略することができます。 上記の例"first-name"の場合はクオートが必要ですが、first_nameの場合は省略可能です。


初歩的な質問で恐縮ですが、jQueryの公式のCSSや/Types/#Stringの項目を読んでも、はっきりした答えを見つけられなかったので、熟達者の方のご意見をお伺いできると幸いです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

「例4」は単に記事上の記述ミスでしょうか。

はい、JavaScriptの文法として成立しません。

"first-name"をfirst_nameにした部分はエラーは出ませんでしたが、この行のみスルーさたようでした。

文法的にはfirst_nameのようなキーであればクオート不要ですが、jQuery.fn.cssが求めるキーはハイフン区切りもしくはキャメルケースのものだけです(公式)。

投稿2020/02/07 07:12

編集2020/02/07 07:12
maisumakun

総合スコア146018

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

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

maisumakun

2020/02/07 07:16

> この{}はグループ化 いえ、すべてオブジェクトの生成です。
maisumakun

2020/02/07 07:21

{ foo: 1, 'hoge-piyo': false }のように、1つのオブジェクトリテラル内にクオートありとなしを混ぜて書くことも可能です。
ync_pp

2020/02/07 09:37

大変分かりやすい回答をありがとうございました。身近にこういったことを聞ける人がいないため、とても助かりました。公式のドキュメントも再度読み直してみます。
guest

0

javascriptのオブジェクトのキーを設定するさい
演算子など予約語を含むキーはクォーテーションなしでは
指定できません。

投稿2020/02/07 07:54

yambejp

総合スコア116724

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

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

yambejp

2020/02/07 08:07 編集

console.log({"a=b":123}); console.log({"a-b":456}); console.log({'a+b':789}); 上記はOK、クォーテーションはずすとNG またヒアドキュメント用のバッククォーテーションも使えません
ync_pp

2020/02/07 09:41

なるほど、参考例を記述いただいてありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問