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("mySound"); this.src="images/bird_second_frame.jpg"" onmouseout="StopSound("mySound"); this.src="images/bird.jpg"">
不能在以双引号为边界的字符串中使用双引号,因为它们将结束字符串
在这种情况下使用单引号看起来很合适。您可以在JavaScript中自由使用单引号;它们在语法上等同于双引号字符(尽管任何单字符串常量都必须由同一种引号绑定)。这也适用于HTML,因此您可以通过使用单引号作为属性值分隔符在JavaScript中获得双引号:
<button onclick='alert("Hello World")'>Click Me</button>
点击我
但是,如果您确实希望在任何地方都使用双引号,则可以将其作为HTML实体转义:
<button onclick="alert("Hello World")">Click Me</button>
点击我
这很难看,但它可以工作:HTML解析器专门查找引号字符
最好的做法是停止在HTML中嵌入JavaScript事件处理程序设置,而只使用JavaScript。JavaScript中的单引号和双引号是可以互换的。这主要是一种风格。如果您通常使用双引号,那么当您在表示字符串的字符串中构建内容时,您可以e或使用单引号。因为转义是一种PITA,所以使用另一种引号类型更容易、更明智。在本例中,对HTML使用双引号属性是很好的。然后在JS中使用单引号来引用字符串值是完全可以接受的,事实上,我不认为您可以在这里转义引号,因为HTML不处理w这很好。@Dymos很难看,但HTML实体表示法确实工作可靠。@Pointy很正确。但不值得缺乏可读性;)
<button onclick="alert("Hello World")">Click Me</button>