Js中关于转义符的使用和单双引号的区别

关于js中单引号(')和双引号(")的使用以及转义的理解

  这几天一直在画页面,身为开发人员的我之所以要画页面是因为当前项目中的页面上所有的东西都是从数据库中取得的,也就是动态的,类似于我们设计自己的个人QQ空间,但因为是大型平台,有自定义业务的概念 ,所有更为复杂,在这就不多说了,我所谓的画页面就是如何把数据结合逻辑,变成HTML,其中遇到的最大的问题就是我今天要说的; 

  一个页面上有一个查询,当然查询的条件,字段类型都是动态的,要根据数据类型生成不同的文本框,如果是varchar2就生成不同的, 如果是date就生成加入时间选择js的,页面上有一个添加新的条件组的按钮,链接到一个js事件,里面就要做关于文本框的判断,我们只看判断部分 如下;

if(tlist[index].value=="date")
    {
     table.rows[t].cells[2].innerHTML='<input name="'+mlist[index].value+biduinum+'" type="text" size="12" style="width: 200px" readonly="readonly"  οnclick="WdatePicker({dateFmt:"yyyy-MM-dd"})" οnfοcus="WdatePicker({dateFmt:"yyyy-MM-dd"})" class="Wdate" />';
    }
    else
    {
     table.rows[t].cells[2].innerHTML='<input name="'+mlist[index].value+biduinum+'" type="text" size="12" style="width: 200px" />';
    }

  重点为红色部分, 这样写我本来认为是无可厚非的, 但是如果这段代码执行一次,就汇报js错误,错误信息是“语法错误”,js本身为弱语言,单引号和双引号如果是但用的话其实可以混淆的,但如果一起用就要区分,例如上段代码我可以把单引号和双引号对换,也是可以的, 但如果只改变其中一处就需要用+号链接, 意义也不同了,例如

"'b'" 可以 ,但""b""就会出错,需要""+"b"+""

  无法通过单引号双引号的改变来解决问题,我就开始寻求别的思路,我尝试了使用 \ (转义符)来解决,如下

οnclick="WdatePicker({dateFmt:\"yyyy-MM-dd\"})"

  但还是不行,个人认为原因是js还是在html的作用中,而不是java,所以我想到了使用&quot;来解决,

table.rows[t].cells[2].innerHTML='<input name="'+mlist[index].value+biduinum+'" type="text" size="12" style="width: 200px" readonly="readonly"  οnclick="WdatePicker({dateFmt:&quot;yyyy-MM-dd&quot;})" οnfοcus="WdatePicker({dateFmt:&quot;yyyy-MM-dd&quot;})" class="Wdate" />';

 

  问题解决了, 我生平第一次感觉到了这个东西的神奇, 原来只使用过&nbsp; ,看来在程序的世界中,每一样东西都有他存在的意义, 即使在我们不得已淘汰他们的时候 ,也要知道他们有意义的部分,因为这些富有意义的东西可能在某时某刻给我们极大地帮助,而且替代他们的产品未必可以将他们的优点全部传承,人亦如此 


转载地址:http://www.cnblogs.com/gengyulong/archive/2011/05/06/2038573.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值