javascript - 如果在上下文之外使用变量如何包含数组内容

标签 javascript jquery

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

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

这个 javascript 应该输出 嗨弗雷迪! 嗨,麦克! 嗨范妮! 嗨,梅!

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

最佳答案

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

您可以将其设为一个在调用时计算值的函数:

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));
});

关于javascript - 如果在上下文之外使用变量如何包含数组内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13996654/

相关文章:

javascript - 类型错误 : undefined is not an object

jquery - 如何使用 html 控件(如标签)附加 Html5 选择(下拉列表)

jquery - 手机javascript中的2D UIScrollView?

javascript - 中断ajax函数会阻止它完成吗?

java - JSP 单击按钮时运行方法

javascript - 使用 MixItUp 插件过滤中心图像

javascript - openlayers3 undefined 不是 ol.source.StaticVector 上的构造函数错误

javascript - 使用PHP+JSON+AJAX清除以前从数据库返回的HTML数据

javascript - Jquery 侧边栏在 IE 中不起作用

javascript - 在行内位置显示 div