2011-04-24 112 views
0

這是推動我瘋了:Jquery的字符串替換不工作

// Get the comment template 
var comment = $('#CommentTemplate').html(); 

// Delete all entered text 
$("textarea#NewComment").val(''); 

// Get comments returned ID 
var ThisCommentsID = data.substring(2, data.length); 
var d = new Date(); 

// Replace comment variables 
comment = comment.replace("{CID}", ThisCommentsID); 
comment = comment.replace("{USERNAME}", CurrUsername); 
comment = comment.replace("{BODY}", Message); 
comment = comment.replace("{GRAV}", GravHash); 
comment = comment.replace("{CLEARDATE}", GravHash); 
comment = comment.replace("{ISODATE}", ISODateString(d)); 
comment = comment.replace("{USERURL}", RelURL + CurrUsername); 

// Add it 
$('#comment-total-wrap').prepend(comment); 

這基本上工程100%的罰款,動態地添加到與AJAX查詢列表中的註釋,但在模板上的所有值都現身仍然是{CID},{GRAV}等等。它不會拋出任何錯誤,替換不起作用。

我已經試過:

comment = comment.replace("{BODY}", Message); 

以及,但它仍然只是顯示爲函數體在輸出HTML。任何幫助讚賞。

頁面上的HTML模板是:

<div id="CommentTemplate" style="display:none;"> 
    <div id="cid{CID}" class="comment-wrapper"> 
     <div id="CommentHead" class="comment-head ch-highlight"> 
      <div class="comment-date"> 
       <abbr class="timeago" title="{ISODATE}" id="Timeago{CID}">{CLEARDATE}</abbr> 
      </div> 
      <div class="comment-author"> 
       Written by <a id="CommentAuthorLink" title="Visit this game makers profile" href="{USERURL}">{USERNAME}</a> 
      </div> 
     </div> 
     <table class="comment-body" width="100%"> 
      <tr> 
       <td width="100" valign="top" align="center"> 
        <a id="GravLink" title="{USERNAME} makes games with Construct 2" href="{USERURL}"><img id="GravatarComment" title="{USERNAME}&#39;s Gravatar" class="comment-avatar" src="http://www.gravatar.com/avatar/{GRAV}?r=pg&amp;s=80" /></a> 
       </td> 
       <td valign="top"> 
        <div class="comment-txt"> 
         {BODY} 
        </div> 
       </td> 
      </tr> 
     </table> 
     <div class="clear"></div> 
    </div> 
</div> 
+0

您正在使用str = str.replace,因爲它必須存儲...最新值。 – kobe 2011-04-24 22:30:24

+0

它的表現很奇怪,它取代了身體好,但沒有其他人。 – 2011-04-24 22:33:36

回答

3

能否請您試試這個

comment.replace("{CID}", ThisCommentsID); 

try this 

comment= comment.replace(/\{CID\}/gi, ThisCommentsID); 
+0

沒有運氣,似乎沒有做任何事情,因爲你把它拋出錯誤';預計「,並附上引號,它不會執行任何替換操作 – 2011-04-24 22:30:01

+0

@Tom,請嘗試我的更新答案。 – kobe 2011-04-24 22:34:22

+0

完美! +1 !!!!!你能向我解釋爲什麼這個工作可以嗎?我做錯了什麼? – 2011-04-24 22:36:41

0

只是用comment = comment.replace("{BODY}", Message);,它應該工作。

+0

它不,這就是爲什麼我問這個問題:) – 2011-04-24 22:30:20

+0

它的行爲真的很奇怪,替換其中一些,其他不是:( – 2011-04-24 22:31:40

+0

@tom,試試我更新的答案。 – kobe 2011-04-24 22:35:15