我想替换side script标签中的jQuery函数。我在</body>
标记之前的布局中有这个jQuery函数。
<div id="white_backstretch">
<script>
$.backstretch("/body-bg.jpg");
</script>
</div>
在另一页(显示页面)我有:
<script>
$('#white_backstretch').replaceWith("<script>" + $.backstretch(<%= @white_label.logo %> + "</script>");
</script>
这里我试图替换现有的
<script>$.backstretch("/body-bg.jpg");</script>
带
<script>$.backstretch(<%= @profile.logo %></script>
这样当不同的页面出现时,背景图像会发生变化。但我面临的问题是:
<script>
$('#white_backstretch').replaceWith("<script>" + $.backstretch(/uploads/white/logo/4/image14.png) + "</script>");
未捕获的SyntaxError:意外的令牌ILLEGAL
替换函数中的第一个结束</script>
标记被视为脚本的结尾,因此“);” &lt; - 作为意外令牌错误抛出
那么,如果有人告诉我如何用另一个jQuery方法替换脚本标记内的jQuery方法,那么它会有用吗? (这个方法也应该在script标签里面,因为我想在html文件中使用replaceWith jQuery方法)
答案 0 :(得分:1)
$.replaceWith
只会替换而不会执行javascript。即使你能够使它工作,也没用。
我建议你通过使用函数重写
以另一种方式执行此操作<div id="white_backstretch">
<script>
function replace() {
$.backstretch("/body-bg.jpg");
}
</script>
</div>
并在您的展示页面
document.write("<script>function replace(){$.backstretch("<%= @profile.logo %>");} </script>")
并在页面加载中或在适当的时候调用replace()
。