⊗jqBsEM 30 of 113 menu

jQuery에서 each 메서드 사용하기

jQuery를 사용하여 얻은 요소 그룹이 있을 때, 변경 사항은 모든 요소에 동시에만 적용할 수 있습니다.

예를 들어, 찾은 모든 단락의 텍스트를 변경하려는 경우, 각각 다르게 만들 수는 없습니다.

이런 경우 특별한 메서드인 each가 도움이 되는데, 이 메서드는 jQuery 집합의 모든 요소에 어떤 함수를 적용할 수 있게 해줍니다. 이 함수 내부에서 우리는 요소들을 구분하고 각각에 대해 다르게 처리할 수 있습니다.

본질적으로 each는 찾은 모든 요소를 순회할 수 있는 루프입니다. 현재 루프가 진행 중인 요소에 대한 참조는 this에 저장됩니다.

우리는 이전에 했던 것처럼 순수 JavaScript에서 이 this를 간단히 사용할 수 있습니다, 예를 들어 this.innerHTML와 같이 해서 요소의 내부 콘텐츠를 출력할 수 있습니다. 하지만 this를 jQuery 달러로 감싸는 것이 더 좋습니다, $(this)와 같이요 - 이렇게 하면 모든 jQuery 메서드와 체인을 적용할 수 있습니다.

다음 HTML 코드를 살펴보겠습니다:

<p class="www">text</p> <p class="www">text</p> <p class="www">text</p> <p>text</p>

이 예제에서 우리는 클래스가 www인 모든 요소를 가져와 그 내용을 화면에 출력해야 합니다. 방법은 다음과 같습니다: $('.www')를 사용하여 필요한 요소를 얻은 다음, each(test)를 사용하여 얻은 각 요소에 test 함수를 적용합니다. 이 함수는 먼저 첫 번째 단락에, 그 다음 두 번째, 세 번째 등에 적용됩니다.

함수 내부에서 this는 함수 test가 적용되는 요소를 가리킵니다 - 처음에는 첫 번째 요소, 그 다음에는 두 번째 요소, 이런 식으로요. $(this)와 같은 구문을 사용하면 일반 JavaScript의 this 대신 jQuery 요소를 얻고 여기에 html 메서드를 적용하여 요소의 텍스트를 얻을 수 있습니다. 그런 다음 화면에 출력됩니다:

/* 함수 이름 test는 따옴표와 () 없이 씁니다, 결과가 아니라 코드 자체가 필요하기 때문입니다: */ $('.www').each(test); function test() { alert($(this).html()); }

이 작업을 해결하기 위해 익명 함수를 사용할 수도 있습니다 - 이 방법이 가장 일반적입니다:

$('.www').each(function() { alert($(this).html()); });

또한 each 메서드에 매개변수가 있는 콜백 함수를 전달할 수도 있습니다.

다음 예제에서 페이지의 모든 li 끝에 순서 번호를 추가해 보겠습니다. 이제 우리의 익명 함수에 요소의 인덱스와 요소 자체를 전달할 것입니다:

$('li').each(function (index, elem) { $(elem).append(index); });

이제 elem 대신 this를 사용해 보겠습니다:

$('li').each(function (index) { $(this).append(index); });

모든 li의 내용을 해당 순서 번호로 변경하세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부