2014-10-15 7 views
1

코드 두 개가 있다고 가정 해 보겠습니다. 또한 '.selector'가 적어도 2 개의 객체를 반환한다고 가정 할 수 있습니다.jQuery selector 대 각각

발췌문 1

$('.selector').myMethod(); 

발췌문 2

$('.selector').each(function(){ 
    $(this).myMethod(); 
}); 

내가 myMethod()에 싸서 개체 ID를 전달하려는 반환 '선택'객체 각각에 대해 말할 수 있습니다 .

그래서 발췌문이

$('.selector').each(function(){ 
    $(this).myMethod({attribute: $(this).attr('id')}); 
}); 

이 어떻게 (즉 $.each()를 사용하지 않고) 발췌문 1와 비슷한 뭔가를 할 수가 될 수 있을까? 분명한 이유를 들어
$(this)

$('.selector').myMethod({attribute: $(this).attr('id')}); 

은 '선택'반환 된 개체 중 하나 나타내지 않는 올바르지 않습니다.

EDIT : 니핏 1자체에서 각 객체를 통해 복귀 '루프'및 메소드를 호출 jQuery를로서 리턴 된 객체를 참조하는 임의의 방법이있다. (다시 w/o $.each() 포함).

+3

당신은 반복 할 수 없습니다 ... 여러 ID에 대해 1 개의 ID를 사용하지만 한 번만 호출하는 메서드를 실행하려면 어떻게해야합니까? – tymeJV

+0

정말로 자신의 코드라면 관련된 각 요소에 직접 액세스 할 수 있습니다. 그 이유가 충분하지 않다고 설명하거나 "myMethod"가 자신의 코드가 아님을 명시해야합니다. – Pointy

+0

편집을 참조하십시오. 감사. – SpartanElite

답변

1

두 개의 코드 은 동일하지 않습니다.. 하나는 객체의 집합이고 다른 하나는 객체의 집합을 통한 루프입니다. 모두에 영향을 미치는 컬렉션에 대해 조치를 취할 수 있습니다 또는 컬렉션의 각 개체에 대해 개별적으로 작업 할 수 있습니다. each() 함수를 호출하면 컬렉션의 개체를 개별화합니다.

질문에 대답하기 위해 컬렉션의 각 개별 항목에 다른 함수, 계산 또는 결과를 반복 적용한 것처럼 반환 된 개체 컬렉션을 참조 할 방법이 없습니다.

+0

생각합니다. 그는 결과에 관해 말하고 있습니다. $ ('. myclass'). addClass ('active')'와'$ ('. myclass'). 같은 결과. –

+0

True @JasonP 그리고 그것은'each()'와 컬렉션에 대한 행동을 사용해야 할 때를 말해줍니다. –