首页 > 遇到一个奇怪的问题,jquery-1.11.1.js,添加页面元素需要分成2个语句来执行才可以,否则出现异常,求原因?

遇到一个奇怪的问题,jquery-1.11.1.js,添加页面元素需要分成2个语句来执行才可以,否则出现异常,求原因?

执行下面的JS语句,alert("ok")没有弹窗:

$(document.body).append("<script id='initializeDate' type=\"text/javascript\" >$($.date_input.initialize);</script >");alert("ok")

但是分成下面2个语句来执行,alert("ok")却可以弹窗:

$(document.body).append("<script id='initializeDate' type=\"text/javascript\" ></script >");    $("#initializeDate").append("$($.date_input.initialize);");alert("ok");

请问,原因是什麽?


我测试了以上两段代码,全部无法正常执行。

原因是/是带有特殊含义的字符,用于正则表达式。

这里script的首尾标签正好配对,字符串中的</script>中断了代码的运行,你最好为字符串中的/提供转义,写作\/,这样两段代码就都可以正常运行了。


浏览器在遇到</script>时,是不会管它是否在字符串中,都会当成是脚本的结束。
所以需要对/进行转义。
<\/script>

【热门文章】
【热门文章】