遇到一个奇怪的问题,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");

请问,原因是什麽?

阅读 4.7k
2 个回答

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进