Jquery字符串替换不起作用

时间:2011-04-24 22:20:43

标签: javascript jquery string replace str-replace

这让我很生气:

// 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上显示为{BODY}。任何帮助表示赞赏。

页面上的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>

2 个答案:

答案 0 :(得分:3)

你能试试吗

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

try this

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

答案 1 :(得分:0)

只需使用comment = comment.replace("{BODY}", Message);即可。