在$ .each里面的对象方法中使用“this”

时间:2013-07-29 14:17:30

标签: javascript jquery object each

我试图让this指向对象方法内部函数内的每个img,就像这样

var responsiveImageSwap = (function(){
    return {
        init : function(){
            $.each('img', function(){
                var width     = $(window).width(),
                    _this     = this, 
                    alert(_this.attr('src'))
            })
        }
    }
})();
responsiveImageSwap.init();

但它引用了object而不是img,我该如何引用图片?

2 个答案:

答案 0 :(得分:8)

$.each用于循环集合。你正在做的是循环字符串'img'中的字母。

您想使用.each;这是针对jQuery对象的。

$('img').each(function(){
    var width = $(window).width(),
        // this is a DOM element, we need to make it a jQuery object
        _this = $(this), 
     alert(_this.attr('src'))
});

答案 1 :(得分:3)

此?

return {
    init: function () {
        var vw = $(window).width(); // viewport width

        $('img').each(function () {
            var $img = $(this);

            // Do stuff with $img, e.g. retrieve $img.attr('src')
        });
    }
};