0
var name = new Array('freddy', 'mac', 'fanny', 'may');
var content = 'hi '.+name[i]+.'!';

$('div.class').each(function (i) {
this.html(content);
});

这个 javascript 应该输出 hi freddy!嗨,麦克!嗨范妮!嗨可能!

但是 var 有一个错误,因为它引用了一个尚未设置的数组。

4

2 回答 2

3

您正在为content变量分配一个值,并且在您分配值时评估一个值,而不是在您使用该变量时。即一个普通值不能包含对另一个值的引用。

您可以将其设为在调用时评估值的函数:

var name = new Array('freddy', 'mac', 'fanny', 'may');
var content = function(i) { return 'hi ' + name[i] + '!'};

$('div.class').each(function (i) {
  $(this).html(content(i));
});
于 2012-12-21T20:19:07.137 回答
2

您没有对报价进行正确排序,并且由于i在分配内容时不存在,因此无论如何它都不会起作用。你应该试试这个:

var content = 'hi, {0}!';

$('div.class').each(function(i) {
    this.html(content.replace("{0}", name[i]));
});
于 2012-12-21T20:18:36.703 回答