在JS中,使用单引号'和双引号"都是可以的,只要成对使用就行。有时单双引号混用,是因为拼接的字符串里还有双引号或单引号,为了减少使用转义符/的次数,所以一般会选用跟字符串里存在的引号不同的符号来将整个字串括起来
例如字串:<a href="acb">,现在定义一个变量x,如果用双引号的话,就必须这样定义:
var x="<a href=\"acb\">"
在其中必须使用转义符,如果用跟字串中的双引号不同的符号就方便多了,例如:
var x='<a href="acb">'
另外,你说的拼接字串可以不用引号,是指使用format等方法,如果用+做为连接字串,必须使用引号的,format示例:
str.format("<a href='{0}'>{1}</a>", 变量1 , 变量2)
字符串拼接是在页面效果中常用到的,那都是把html代码在js中写出来。双引号是一个字符串,一般的是需要在字符串中加入变量的值。
例如:$('ul.test').append("<li class=\""+i+"\">class是i的值</li>")其中i的值会随到循环改变,这句话你看到了 它是用+好连接起来的,html中class是要有双引号的,这时需要用\符号转义一下,告诉js这个双引号我是要显示出来不是字符串的开始或者结束。
单引号没研究过,我想应该是显示固定的内容。
$("div").each(function(index){
$(this).append("<li class=\""+i+"\">class是i的值</li>")
})
首先要明白的是 \ 这个符号的意思是转义,主要是用来区别语法中的字符和普通输出字符的。你的代码:var str ='<a href="#" onclick="toPage(\'' + id + '\',\'' + name + '\')"></a>'
假设id=1 name=张三 你会看的更加清楚。
' + id + ' ' + name + ' +这个是js的连接符你应该知道,+号两边为什么有 ' 因为a标签两边用的是 ' 标识的字符串,所以要用 ' 号分割变量和字符串,你应该知道的。
这样你的代码就是:
var str ='<a href="#" onclick="toPage(\' 1 \',\' 张三 \')"></a>'
\是要告诉程序 \后的字符按照字符输出 不是系统标签符号。
这样输出就是:<a href="#" onclick="toPage(' 1 ',' 张三 ')"></a>
为什么要转义呢 因为你的onclick事件已经用 “ 双引号了,为了不冲突,所以方法中用的 ' 单引号,但是‘ 单引号又和 整个a标签字符串外的‘ 号冲突了,所以要转义。