用带有jquery的字符串替换span文本

时间:2011-06-06 09:01:00

标签: jquery

在下面的代码中,如果我将temp中的$(this).text(temp);替换为"something"span它可以正常工作并更改string.format文字,但当我使用jquery code:时,它不会工作。

var x = $("span.resource"); x.each(function () { if ($(this).attr('id') = "l1") { var temp = String.Format("{0}/{1}", variable1,variable2); $(this).text(temp); });

{{1}}

2 个答案:

答案 0 :(得分:1)

如果查看MDCFormat对象没有名为String的方法。我的猜测是你混淆了语言(JavaScript和C#),这对于多语言开发人员来说很常见。

然而,一切都没有丢失。您可以通过添加String对象的原型轻松地在JavaScript中重新创建等效方法。积分归功于gpvos,Josh Stodola,无限和Julian Jelfs,他们为these solutions to a similar problem做出了贡献。

String.prototype.format = function(){
  var args = arguments;
  return this.replace(/\{(\d+)\}/g, function (m, n) { return args[n]; });
};

稍微调整它应该是这样的:

$("span.resource").each(function(){
    if (this.id == "l1") {
        var $this = $(this),
            newText = $this.text().format(var1, var2);
        $this.text(newText);
    }
});

Blair Mitchelmore有一个similar implementation on his blog,但有一些额外的功能和附加功能。您可能也想检查一下!

答案 1 :(得分:0)

您有语法错误,并且javascript中不存在String.Format。这有效:

  $("span.resource").each(function () {             
       if ($(this).attr('id') == "l1") {
           var temp = variable1 + '/' + variable2;
           $(this).text(temp);
       }
  });