js中拼接字符串遇到的单引号、双引号以及转义字符问题

        项目中经常遇到对ajax提交后返回的结果动态显示在页面上,这时候就需要在js中进行字符串的拼接。额...其实普通的拼接字符串并没多大难度系数,只要保证单引号和双引号相间就可以了。但是,如果在拼接字符串中嵌入值,或者增加带有一个或多个参数的方法的链接,那么单双引号的问题就略微有些难搞了。

1.嵌入值拼接

        利用加号在两个字符串之间嵌入值。加号可以连接两个字符串。 

 "<img src=" + result[i].photo + " alt=''/>"

2.拼接带有一个或多个参数的方法链接

        单双引号相间,如果单单、双双在一起,就利用转义字符。方法里的参数不是作为嵌入值,所以要形成字符串的形式。

"<a href=\"javascript:getProductDetail('"+result[i].spec+"','"+result[i].name+"')\">"
"<a href='javascript:getProductDetail(\""+result[i].spec+"\",\""+result[i].name+"\")'>"

        以上两种形式都是正确的,但是采用以下的形式,浏览器会报Uncaught SyntaxError:Unexcepted end of input的错。

"<a href='javascript:getProductDetail(\'"+result[i].spec+"\',\'"+result[i].name+"\')'>"

       虽然这种形式也满足上面的规则,但是浏览器会出现匹配错误,因为第一个单引号是对href属性值的总括,而第二个转义的单引号的期望作用是对参数值的总括,但浏览器并没有这么智能,所以匹配出错。

日ji

猜你喜欢

转载自blog.csdn.net/jsh306/article/details/81708224