您不能在由"
字符分隔的HTML屬性值內使用文字"
。它會過早地終止屬性值。
您可以包含一個爲"
,但這會使代碼顯着難以閱讀。
<img id="image" src="images/bird.jpg" onmouseover="PlaySound("mySound"); this.src="images/bird_second_frame.jpg"" onmouseout="StopSound("mySound"); this.src="images/bird.jpg"">
我已經被告知沒有在所有使用單引號 - 這是一個例外?
不,您剛剛收到不好的建議。
JavaScript和HTML不區分'
和"
,除非確定哪些字符可以在它們之間出現而不被轉義。
在您的示例中使用'
更簡單易讀。
更好的方法是儘量避免內聯JavaScript。
<img id="image"
src="images/bird.jpg"
data-sound="mySound"
data-frame="images/bird_second_frame.jpg">
<script>
var element = document.getElementById("image");
element.addEventListener("onmouseover", play);
element.addEventListener("onmouseover", stop);
function play() {
PlaySound(this.dataset.sound);
this.dataset.original = this.src;
this.src = this.dataset.frame;
}
function stop() {
StopSound(this.dataset.sound);
this.src = this.dataset.original;
}
</script>
JavaScript中的單引號和雙引號是可以互換的。 – Pointy
http://stackoverflow.com/questions/16450250/javascript-replace-single-quote-with-double-quote – prasanth
這大多是一種風格。如果您通常使用雙引號,那麼當您在表示字符串的字符串內部構建內容時,您可以使用雙引號或使用單引號。由於轉義是PITA,所以使用其他引用類型更容易和更安全。在這個例子中,使用HTML的雙引號屬性是很好的。然後使用單引號引用JS中的字符串值是完全可以接受的,事實上,我認爲您無論如何都無法逃避引號,因爲HTML並沒有很好地處理這些問題。 – Dymos