0

我有以下代码,这让我发疯:

$.each(originalSteps, function() {
                    if($(this).attr('id') == 'ps_attributes_step_'+(parseInt(triggered_step)+1))
                    {
                        alert('testing validity');
                        var newOne = $(this);
                    }
                });
                console.log(newOne)

现在,警报被触发,但 newOne 在循环外未定义。有什么解决办法吗?

谢谢

4

1 回答 1

2

那是因为你已经在里面声明了变量。如下更改您的代码。

var newOne;
$.each(originalSteps, function() {
    if($(this).attr('id') == 'ps_attributes_step_'+(parseInt(triggered_step)+1))
    {
        alert('testing validity');
        newOne = $(this);
        return false;
    }
});

console.log(newOne);

编辑添加return false。请参阅下面的评论以获取解释。

于 2012-12-19T09:49:55.417 回答