2016-10-01 5 views
0

ごめんなさい。ジャバスクリプトのリテラルラッピング

なぜ動作しないのかわかりません。

私は1つ以上の

<button type="button" onclick="document.getElementById("demo").innerHTML = Date()">click</button> 

を書いていた場合には機能していません。

私はこの1つが動作している

<button type="button" onclick="document.getElementById('demo').innerHTML = Date()">click</button> 

を書いていた場合。

i「が」リテラルだけを得た唯一の違い、「」

しかし、なぜこれが起こっていますか?

私は代替リテラルのみを選択しなければならない理由は同じですか?あなたのonclickの内側に完全な式

document.getElementById("demo").innerHTML = Date() 

を必要とするので

はあなたに

+1

ちょうどHTMLが着色されている方法を見て、それは明らかであるあなたがonclick'のdocument.getElementById( ''に '設定されている、それはどこのテキストリテラルの両端をだから場合。 –

+1

'' "はonClick()メソッドの一部ですので、間に' ''があるとブラウザがコードを壊してしまい、使用できなくなってしまいます'' 'を使う必要があります。 – Franco

+2

これはインラインJSが良い考えではない多くの理由の1つです... – JJJ

答えて

2

ありがとうございます。 onclick-expressionを二重引用符で始めると、パーサーはそれを知っているだけで、別の "が式を閉じるので、別の(この場合は単一の)引用符を使用する必要があります。

同じこと単一引用符で始まる:

onclick='document.getElementById('demo').innerHTML = Date()' // wouldn't work 
onclick='document.getElementById("demo").innerHTML = Date()' // would work 
+0

はいありがとう:) – sradha