2012-01-19 3 views
1

나는이 작업을 수행하려고 해요 : 나는 참조jQuery 객체를 자체 메소드 호출로 참조하는 방법은 무엇입니까?

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

는 '이'나는 $의 인스턴스를 참조 할 싶습니다 JQuery와 현재를 이야기하고, 여러 있기 때문에, ('요약.') 범위는이 인스턴스의 'this'페이지로 간주합니다.

이 경우 각 요소를 참조하는 가장 쉬운 방법은 무엇입니까?

나는이 답변에 대한 검색을 조사했지만 올바른 구문을 잘 모릅니다. 이 대답이 있으면 알려주고 사본으로 닫을 수 있습니다.

감사합니다.

+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()); 
}); 

편집 : 적은 다시 쿼리. 또한 나는 am not i am 님의 답변을 더 좋아합니다. 약간 더 우아합니다.

+0

당신은 이미 가지고있는 것을 다시 꾸미고 있습니다. 첫 번째 쿼리에 대한 참조를 저장하고 나중에 사용해야합니다. 그래도 그렇게한다면 Lawson Kurtz의 답은 불필요하게 긴 버전이됩니다. – JAAulde

+0

고마워요. FWIW, 상위 애트리뷰트에있는 유닛을 생략하기 위해 노력하지만 최선의 방법이라고 확신합니다. – John

1

당신은 다음 방법에서 참조 할 수 있습니다, 첫째 변수로 정의한다 :

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

이것은 클래스이며 여러 요소를 나타낼 수 있으므로 신뢰할 수 없습니다. – mrtsherman

+0

좋은 점, mrtsherman – JAAulde

관련 문제