JQuery对象上的JavaScript替换似乎无法正常工作

时间:2014-09-17 15:03:55

标签: javascript jquery replace

我试图让以下代码正常工作,这应该是'扫描{count},然后将其替换为数字' 1'。

完整代码:

http://jsbin.com/miciqe/7/edit

段:

$('#data').html( function() {
    $(this).html().replace('{count}', '1');
  });

看起来很简单,将html设置为(获取html的函数,替换,返回结果值)。

无法弄清楚我的生活中出了什么问题。

有人能指出“希望'明显?

更新

感谢bic, 以下工作代码示例:Solution 1Solution 2(推荐)

P.S。我将其更改为regexp,以便在字符串中替换{count}的所有出现。

3 个答案:

答案 0 :(得分:3)

您需要返回字符串:

$('#data').html( function(index, oldHtml) {
    return oldHtml.replace('{count}', '1');
});

使用您的方法,而不是默认传入的参数:

$('#data').html(function () {
    return $(this).html().replace('{count}', '1');
}

Updated JSBin

答案 1 :(得分:0)

您的闭包不会返回任何值设置为html,您的代码应为:

    $('#data').html( function() {
        return $(this).html().replace('{count}', '1');
    });

Working demo

答案 2 :(得分:-1)

当你怀疑时,这是一个非常小的问题。您正在将{count}替换为1,但不会将其重置。请尝试以下方法:

$('#data').html( function() {
  $('#data').html($('#data').html().replace('{count}','1'));
});