jQuery:使用replaceWith函数

时间:2013-09-30 11:26:38

标签: javascript jquery html ruby-on-rails-3

我想替换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方法)

1 个答案:

答案 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()