JavaScript で一重引用符 (') をエスケープするにはどうすればよいですか? [重複] 質問する

JavaScript で一重引用符 (') をエスケープするにはどうすればよいですか? [重複] 質問する

更新:この質問に対する最新の回答をしたいと思います。まず、以下で説明していることを実現しようとしている場合は、代わりにイベント リスナーを追加してイベントを管理することをお勧めします。プロジェクトにjQueryを使用し、DOM を使用する代わりに jQuery の構文を使用してイベント リスナーを管理することを強くお勧めします。

質問

さて、私は基本的にこれをやっています:

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\'ex1\')' />";

\' を置く場所に二重引用符 (") は不要です。単一引用符のみが必要なので、使用時に二重引用符が入らないようにしています。最終結果でこれを実現しようとしています。

<img src="something" onmouseover="change('ex1')" />

逃げてもダメだ。

私のマークされた回答は問題なく機能しますが、よりクリーンな(そしてよりプロフェッショナルに見える、と私は思います)方法は、loganfsmyth の回答です。

ベストアンサー1

ブラウザが最終的に何を表示するかを常に考慮する必要があります。この場合、ブラウザには次のように表示されます。

<img src='something' onmouseover='change(' ex1')' />

つまり、「onmouseover」属性は単なる でありchange(ex1')'値なしで呼び出される別の「属性」が存在します。

実のところ、HTML では\エスケープ文字は使用されません。ただし、 と はそれぞれエスケープされた引用符とアポストロフィとして認識され&quot;ます&apos;

この知識を身に付けて、以下を使用してください。

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(&quot;ex1&quot;)' />";

...そうは言っても、JavaScript の引用符を使用することもできます。

document.getElementById("something").innerHTML = "<img src='something' onmouseover='change(\"ex1\")' />";

おすすめ記事