Javascript 可以用双引号代替这些单引号吗?

Javascript 可以用双引号代替这些单引号吗?,javascript,css,html,double-quotes,single-quotes,Javascript,Css,Html,Double Quotes,Single Quotes,在以下代码段中,尝试用双引号(“…”)替换单引号(“…”)时遇到一些问题: <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'"> 每当我试图用双引号替换单引号时,代码就会中断,我

在以下代码段中,尝试用双引号(“…”)替换单引号(“…”)时遇到一些问题:

<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'">

每当我试图用双引号替换单引号时,代码就会中断,我似乎找不到其他解决方案。我被告知根本不要使用单引号-这是一个例外吗


非常感谢您的帮助。

您不能在由
字符分隔的HTML属性值中使用文本
。它将提前终止属性值

您可以将其中一个作为
,但这会使代码更难阅读

<img id="image" src="images/bird.jpg" onmouseover="PlaySound(&quot;mySound&quot;); this.src=&quot;images/bird_second_frame.jpg&quot;" onmouseout="StopSound(&quot;mySound&quot;); this.src=&quot;images/bird.jpg&quot;">

不能在以双引号为边界的字符串中使用双引号,因为它们将结束字符串


在这种情况下使用单引号看起来很合适。

您可以在JavaScript中自由使用单引号;它们在语法上等同于双引号字符(尽管任何单字符串常量都必须由同一种引号绑定)。这也适用于HTML,因此您可以通过使用单引号作为属性值分隔符在JavaScript中获得双引号:

<button onclick='alert("Hello World")'>Click Me</button>
点击我
但是,如果您确实希望在任何地方都使用双引号,则可以将其作为HTML实体转义:

<button onclick="alert(&quot;Hello World&quot;)">Click Me</button>
点击我
这很难看,但它可以工作:HTML解析器专门查找引号字符


最好的做法是停止在HTML中嵌入JavaScript事件处理程序设置,而只使用JavaScript。

JavaScript中的单引号和双引号是可以互换的。这主要是一种风格。如果您通常使用双引号,那么当您在表示字符串的字符串中构建内容时,您可以e或使用单引号。因为转义是一种PITA,所以使用另一种引号类型更容易、更明智。在本例中,对HTML使用双引号属性是很好的。然后在JS中使用单引号来引用字符串值是完全可以接受的,事实上,我不认为您可以在这里转义引号,因为HTML不处理w这很好。@Dymos很难看,但HTML实体表示法确实工作可靠。@Pointy很正确。但不值得缺乏可读性;)
<button onclick="alert(&quot;Hello World&quot;)">Click Me</button>