在下面的代码中,如果我将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}}
答案 0 :(得分:1)
如果查看MDC,Format
对象没有名为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);
}
});