質問: 下記JSは、このように訂正する必要がありますか? その場合なぜ""が必要なのでしょう?#も文字列ということでしょうか? 初心者でもわかるようにお願いします。 ・$('a[href^=#]').click(function() { ↓ $('a[href^="#"]').click(function() { ``` ```
回答: Javascriptというより、JQueryのセレクタの書き方の問題ですね。 これは「JQueryの仕様としてそう決まっている」ということです。 > > Attribute Starts With Selector [name^=”value”] > > > このようにvalueはコーテーションで囲む必要があると明記されています。 '[アトリビュート名^="値"]' または "[アトリビュート名^='値']" と書く必要があります。 Javascriptでは文字列はシングルコーテーションかダブルコーテーションで囲むことになっていますので、途中で文字列が切れないように、シングルコーテーションかダブルコーテーションを選ぶことになります。 もし、"[アトリビュート名^="値"]" とすると、 **"[アトリビュート名^="** **値** **"]"** という三つの要素に分かれてしまう、ということです。当然エラーになります。