0

我有一个看起来大致像这样的 html

<div id="wallPostTemplate">
    <li id='comment-content--oOo-id-oOo-' class='comment-content' comment_id='-oOo-id-oOo-'>
        <a class='comment-avatar' href='-oOo-link-oOo-'>
            <img class='small_avatar' src='<?="../" . MESTO_ZA_UPLOAD_FAJLOVA_KORISNIKA ?>-oOo-korisnikPodaci.Slika-oOo-'></a> 
            -oOo-text-oOo-
    </li>
</div>

现在,我将 html 的内容放入一个字符串中$('#wallPostTemplate').text(),然后我想用-oOo-id-oOo- 我存储的任何数据动态替换字符串的出现,比如-oOo-id-oOo--oOo-text-oOo-等等......

现在我尝试了很多方法来解决这个问题,但我总是没有解决方案。这是我最近的尝试。帮助请Q_Q

var regex = new RegExp('{\-oOo\-'+index+'\-oOo\-}', "g");
post = post.replace(regex, value);  

我也尝试过str.replace,但它不起作用......似乎新线路是问题,但我不知道如何克服这个......

编辑:

为了更容易理解,我在 jsfiddle 上做了一个例子:http: //jsfiddle.net/DdBFB/ 正如你所看到的,你什么也看不到....当你通过 html 获取内容时它不起作用功能。

4

3 回答 3

1

如果我理解您的问题,您的目标是制作类似帖子模板的内容,该模板将在运行时/客户端加载。因此,如果这真的是您的目标,您可以尝试使用jQuery 模板插件

您的案例样本:(尚未测试)

var tmlpPost = "<div id='${postId}'>" + 
                         "      <li id='comment-content-${postId}' class='comment-content' comment_id='${postId}'>" + 
                         "              <a class='comment-avatar' href='${link}'>" + 
                         "                  img class='small_avatar' src='<?="../" . MESTO_ZA_UPLOAD_FAJLOVA_KORISNIKA ?>${korisnikPodaciSlika}'>" + 
                         "              </a> " + 
                         "              ${postText}" + 
                         "      </li>" + 
                         "</div>";


$.tmpl( tmlpPost, { "postId" : "123" , "link" : "http://posturl.com", "korisnikPodaciSlika" : "something",  "postText" : "Post text goes here..."}).appendTo( "#yourPostWall" );

或使用<script>not a var请参阅此 Fiddle

<script id="tmlpPost" type="text/x-jquery-tmpl">
    <div id='${postId}'>
          <li id='comment-content-${postId}' class='comment-content' comment_id='${postId}'>
                  <a class='comment-avatar' href='${link}'>
                      <img class='small_avatar' src='<?="../" . MESTO_ZA_UPLOAD_FAJLOVA_KORISNIKA ?>${korisnikPodaciSlika}'>
                  </a>
                  ${postText}
          </li>
    </div>
</script>

现在在页面加载:

$("#tmlpPost").tmpl( { "postId" : "123" , "link" : "http://posturl.com", "korisnikPodaciSlika" : "something",  "postText" : "Post text goes here..."}).appendTo( "#output" );​
于 2012-08-22T15:59:16.357 回答
0

好的,我想答案是我设置了正则表达式标志错误,所以我去了 jsfiddle 并摆弄它,你可以在那里看到答案:)

http://jsfiddle.net/DdBFB/11/

我错过了多行标志 Q_Q ....即使在 php 中也不用 js 说话,我也对正则表达式不好...

于 2012-08-23T05:34:51.893 回答
0

尽管您的问题不是很清楚,但我已经提出了一个基于正则表达式替换值的示例。

var source = "-oOo-korisnikPodaci.Slika-oOo-";
var id = "korisnikPodaci.Slika";
var regex = new RegExp('\-oOo\-' + id + '\-oOo\-', "gmi");

// Match
source.replace(regex, "hello world"); // => "Hello World"

// Mismatch
source = "-oO!!!o-korisnikPodaci.Slika-oO!!!o-";
source.replace(regex, "hello world"); // => "-oO!!!o-korisnikPodaci.Slika-oO!!!o-"
于 2012-08-22T15:56:06.453 回答