[ JavaScript ] クォーテーションがらみの構文エラーでハマった

↓この記事が気に入ったら、ぜひシェアをお願いします!

久しぶりに簡単な JavaScript を書く機会があったんですが、クォーテーションの構文エラーでハマって悔しかったのでメモ。

スポンサーリンク

構文エラーでハマった JavaScript コード

JavaScript の場合、ダブルクォーテーションの中でクォーテーションを使うには、シングルクォーテーションを使えば良かったよね? レベルの認識で以下の様な行を書いた。

document.write ("<a onClick='hoge('fuga')'></a>");

Internet Explorer 6 と 7 で確認してみると構文エラーが発生。 ちなみに Firefox 2 でエラーは出ませんでした。

※ 実際はもっと長いコードだったんですが、解り易くするため簡単なコードに書き換えています。

正しい JavaScript コード

結局、シングルクォーテーションの入れ子がおかしいのが原因でした。 書き直した正しい JavaScript コードは以下の通り。

document.write ("<a onClick=\"hoge('fuga')\"></a>");

ダブルクォーテーションの中で、ダブルクォーテーションを使う時はエスケープすると良いみたい。

原因を見つけるまでに小一時間かかったよ。 orz

スポンサーリンク