2012-01-19 12 views
1

私はこれやろうとしている:(「要約」)私は「これは」私は$のインスタンスを参照したい参照jQueryオブジェクトを内部で参照する方法は、独自のメソッド呼び出しですか?

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

をjqueryのは、現在、複数のがあるので、と話していることスコープはこのインスタンスの 'これ'とみなします。

この場合、各要素を参照する最も簡単な方法は何ですか?

私はこれに対する答えを探しましたが、正しいフレーズはわかりません。これが答えられたら私に知らせてください。私は複製としてクローズできます。

ありがとうございます!

+1

変数を宣言するという考えにかなり抵抗していると思いますか? –

答えて

6

あなたは.css()に直接関数を渡すことができます。

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

これは、要素を反復処理し、戻り値は'top'の新しい値になります。

+1

優秀、+1 - ジム – JAAulde

5

あなたは.each()を探しています。

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

EDIT:少ない再クエリ。また、私はam not i amの答えがもっと好きです。やや優雅です。あなたが最初の変数として定義する必要があり

+0

あなたはすでに持っているものを再クエリーしています。最初のクエリへの参照を格納し、それを後で使用する必要があります。あなたがそれをやろうとしたら、あなたはローソン・クルツの答えの不必要な長いバージョンを持っていました。 – JAAulde

+0

ありがとうございます。 FWIW、それはトップアトリビュートのユニットを省略するように動作しますが、あなたがベストプラクティスであると確信しています。 – John

1

、あなたはこの方法でそれを参照することができます。

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

これはクラスであり、複数の要素を表す可能性があるため、これは信頼できません。 – mrtsherman

+0

良い点、mrtsherman – JAAulde

関連する問題