2009-06-07 160 views
12

當擴展項目時,我使用jQuery附加了一些JavaScriptjQuery - 將JavaScript附加到Div

但jQuery函數內部的JavaScript代碼導致其餘的jQuery代碼爆炸。

$(this).parent('li').find('.moreInfo').append('<script>alert("hello");</script>'); 

我該如何解決這個問題?

+0

,你能不能後置HTML,並告訴追加劇本的目的是什麼? – TheVillageIdiot 2009-06-07 05:19:03

回答

17

對於附加JavaScript的問題,使用這樣的:

var str="<script>alert('hello');"; 
str+="<"; 
str+="/script>"; 

$(this).parent('li').find('.moreInfo').append(str); 

否則一個更好的選擇將是線向上李的 click事件:

$("ul#myList li").click(function(){ 
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: "url to your content page", 
      data: "{}",//any data that you want to send to your page/service 
      dataType: "json", 
      success: function(msg) { 
       $(this).find('.moreInfo').append(msg); 
      } 
     }); 
}); 

其實我不知道用什麼語言你正在用嗎。如果您使用ASP.NET,請閱讀Dave的blog

2
$(document).ready(function() { 
     $("ul").each(function() { 
      var _list = this; 
      $(_list).find("li").click(function() { 
       var _listItem = this; 
       $(this).animate({ height: 20 }, 300); 
       $(this).append("<script type='text/javascript'>" + "$('.resultsParag').text('I am injected via JS and will not mess up the other JS you have written cause I am a good boy');" + "</" + "script>"); 
      }); 
     }); 
    }); 
2

嘗試添加\之前/script,它應該解決您的問題。

0

可以嘗試這樣

$(this).parent('li').find('.moreInfo').append('<script>alert("hello");</' + 'script>');