如何在它自己的方法调用中引用jQuery对象?

时间:2012-01-19 04:49:14

标签: javascript jquery scope

我正在尝试这样做:

$('.summary').css('top',$(this).outerHeight());

在我引用'this'的地方,我想引用jquery当前正在讨论的$('。summary')实例,因为有多个,但是范围在这个实例中将'this'视为页面。 / p>

在这种情况下引用每个元素最简单的方法是什么?

我仔细研究了这个问题的答案,但不太清楚正确的措辞。如果这个问题已经得到解答,请告诉我,我可以将其作为副本关闭。

谢谢!

3 个答案:

答案 0 :(得分:6)

您可以将功能直接传递给.css()

$('.summary').css('top',function() {
    return $(this).outerHeight();
});

它会迭代元素,返回值将是'top'的新值。

答案 1 :(得分:5)

我想你正在寻找.each()

$('.summary').each(function() {
    var $this = $(this);
    $this.css('top', $this.outerHeight());
});

编辑:减少重新查询。另外,我更喜欢am not i am的回答。它稍微优雅一点。

答案 2 :(得分:1)

您应首先将其定义为变量,然后您可以在方法中引用它:

var summary = $('.summary');
summary.css('top',summary.outerHeight());