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

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值