将参数传递给foreach循环

时间:2014-07-13 03:33:38

标签: javascript jquery

我正试图通过.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

1 个答案:

答案 0 :(得分:2)

这一行

var new_value = system.defaults.xyz

each回调中声明一个局部变量。在执行此行之前,变量没有值,这就是您获得undefined的原因。

如果您不想声明新变量,而是从外部函数引用new_value变量,请删除var关键字。

详细了解hoisting