2013-02-04 45 views
5

我正在使用从后端代码获取HTML内容的jquery ajax请求。如果状态正常,我将HTML内容附加到div。我正在使用以下代码来使用jquery ajax附加div。如$('#divElm').html(response.data);。但经过附加我收到以下错误:SyntaxError使用jQuery.html插入包含脚本元素的HTML片段

SyntaxError: missing } in compound statement

HTML内容从后端渲染(即response.data)包含这是造成此错误的情况如下:

<script type="text/javascript"> 
function init() { 
if(d.getElementById('normal')){ 
    window.normalPop= d.getElementById('normal'); 
    //complicated is local 
    var complicated= normalPop.parentNode.removeChild(normal); 
    d.getElementsByTagName('body')[0].appendChild(complicated); 
    } 
} 
addLoadEvent(init); 
</script> 

我不知道为什么这个错误“SyntaxError:missing} in compound statement”即将到来。}大括号在代码中正确关闭。

如果我使用innerHTML而不是html()它工作正常。渲染没有错误。

+3

你的代码不显示任何jQuery - 是否缺少一些部分? – MarcoK

+0

@MarcoK它存在 - '$('#divElm').html(response.data)',其中'response.data'被认为包含*发布代码的大部分。 – 2013-02-04 07:58:41

+1

这是如何“太本地化”?这是Jquery中的一个常见问题 - 由于包含在其中的脚本,jquery可能会触发一个错误。解决方案是围绕'.html(...)'尝试一下。 – NoBugs

回答

2

The.html()使用.append(),它使用domManip()来执行脚本嗅探和执行。由于这个原因,来自后端的脚本代码被执行并且在复合语句中导致了这个错误“SyntaxError:missing}”。 我通过脚本代码进行了调查,脚本代码中的注释行(//)也对一些JS代码进行了评论。因此,在将单行(//)更改为多行注释(/ ** ** /)之后。得到修复。感谢所有为你的时间。

+1

在这里有同样的问题,令人难以置信的是,评论是坏人。 – fr4nk

相关问题