我正试图通过.each
函数传递一个参数,但似乎无法这样做。然而,在.each
语句之前,参数有一个值,但我无法从上述声明中得到它。
show: function (new_value) {
console.log( new_value ) // returns proper information
$('span[data-xyz]').each(function () {
console.log( new_value ) // returns `undefinded`
var attribute = $(this).attr("data-xyz");
if(typeof new_value === "undefined")
var new_value = system.defaults.xyz;
console.log( new_value ) // returns `system.defaults.xyz`
$(this).text(attribute[new_value]);
}
}
如何在new_value
声明中收到.each
?
答案 0 :(得分:2)
这一行
var new_value = system.defaults.xyz
在each
回调中声明一个局部变量。在执行此行之前,变量没有值,这就是您获得undefined
的原因。
如果您不想声明新变量,而是从外部函数引用new_value
变量,请删除var
关键字。
详细了解hoisting。