单独html标签时,单引号和双引号区别:
<html>
<head>
</head>
<body>
<input type = submit value = 提交1>
<input type = "submit" value = "提交2">
<input type = 'submit' value = '提交3'>
</body>
</html>
输出完全一样,故在纯html标签下以上三种写法是完全等效的。
2. 在JS混编情况下html标签的双引号和单引号区别:
转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直接当作文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。
1.单引号和双引号基本都是一种概念,但是二者一起出现时,需要特别注意2.单引号包含双引号的时候,里面的双引号不用转义,反之亦然
看下面代码:
<input type="button" onclick="alert("3")">-------------------不正确
<input type="button" onclick="alert('3')">-------------------正确
双引号中再用双引号要这样(用转义符):
var str = "abc\"def\"ghi"
用反斜杠来禁止解析双引号。
下面摘录的内容,希望对你有用:
在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
<input value="Test" type="button" onclick="alert(""OK"")" />
IE提示出错后,改为:
<input value="Test" type="button" onclick="alert(\"OK\")" />
结果还是出错。
再改为,ok通过:
<input value="" type="button" onclick="alert('OK')" />
但为什么javascript中的转义字符\没有效果了呢?
原来这时,还是归于HTML的管辖范围,所以转义字符应该使用HTML的,而不是javascript的。两个双引号的做法是vbScript的,\"这种做法则是javascript的,而HTML的,则是用",此外还可以使用:"、'。
再看看下面的代码:
<script type="text/javascript">
function Display(LoginEmail, UserName, ID) {
alert(LoginEmail)
}
</script>
1.使用单引号传参:
<a javascript:Display('','Aleax Xie','10101239393')">Test1</a>
如果其中一个参数有一个值含有单引号,那么这个方法会出错.
<a javascript:Display('abc@a'','Aleax Xie','10101239393')">Test1</a>
改进: 有单引号的加上\', OK。
<a javascript:Display('abc@a\'','Aleax Xie','10101239393')">Test</a>
2.上面解决了单引号的问题,但如果值中有双引号又出现了问题
<a javascript:Display('abc@a\'','Aleax Xie','10101239393')">Test</a>
改进: 使用Onclick,给双引号加上\",单引号不用处理.并且不加“或'给JS方法
<a javascript:void(0)" onclick=Display("abc@\"ab'","Aleax Xie","10101239393")>Test3</a>
这样解决了Js参数中有单引号与双引号的问题,但这有限制: 参数与参数之前不能有空格,参数值中不能空格,如果有空格,则用" "来代替.
总体来说没啥区别,只是当单引号中单引号当普通字符使用易于区分,省的转义比如说
"test'1'
",都用单引号时候要这样,
'test\'1\'
'
,用转义字符(\')代替
单引号