从jQuery.each()函数访问外部作用域

时间:2015-02-27 15:23:42

标签: javascript jquery angularjs

我想迭代“shift”的所有元素并更新一个名为new_requests的外部数组,我该怎么做?,目前我在应该更新数组的行上得到一个未定义的错误。感谢。

$scope.save = function(){

                var new_requests = [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]];

                $("shift").each(function(){

                     var day = $("this").attr("day");
                     var shift = $("this").attr("shift");
                     var status =  $("this").attr("status");
                     new_requests[day][shift]=status;

                })
                console.log(new_requests);
            }

1 个答案:

答案 0 :(得分:0)

假设shift是包含dayshiftstatus属性的元素集合,请使用:

$.each($(shift), function() {
     var day = $(this).attr("day");
     var shift = $(this).attr("shift");
     var status =  $(this).attr("status");
     new_requests[day][shift]=status;
     });

注意$(shift)而不是$("shift")$(this)而不是$("this")