HTML jQuery each (jQuery 반복문)

2018.05.24 21:39

졸리운_곰 조회 수:554

 

jQuery each (jQuery 반복문)

devs 2015.01.28 20:54
 
1
2
3
for(var i=0; i<10; i++){
 
}

위는 자바스크립트의 반복문입니다.

반복문..매우 많이 사용합니다.

동적으로 무언가 뿌려주려고 사용하고

계산할때도 사용하고..두루두루 많이 사용합니다.

jQuery에서도 반복문이 존재하는데요.

이번 포스팅 주제는 jQuery each 함수 소개입니다.

사실 방금전 jQuery XML 파싱을 설명하다 보충설명이 필요하다 느꼇는데 그 부분이 each 함수에 대한 것이었습니다.

그럼 먼저 each에 대한설명을 하고, 그 뒤에 사용법을 설명하겠습니다.

.each(function(index, element))

이번 설명은 색상의 기본인 RGB 순으로 보시면 되겠습니다. :P

 

 

$('li').each

셀렉터는 앞에 알맞게 본인이 원하는걸 선택하면 되겠습니다.

1. function

반복문 한 바퀴마다 실행될 익명함수입니다.

2. index

반복문이 몇바퀴 째인지 알 수 있는 인덱스 입니다.

예를 들자면 for 문에서 많이 쓰는 i 의 역활이 되겠네요.

익명함수 내부에서 $(index)로 셀렉트 할 수 있습니다.

사용하지 않을 경우에는 제외하셔도 좋습니다.

3. element

현재 반복문에서 셀렉트되는 엘리먼트를 나타냅니다.

익명함수 내부에서 $(element)로 셀렉트 할 수 있습니다.

사용하지 않을 경우에는 제외하셔도 좋습니다.

또한 element 대신 this를 사용하셔도 됩니다.

 

 

설명이 좀 부족한것 같긴한데..더이상의 설명은 생략하겠습니다. 직접 눈으로 보는게 훨씬 빠르고 정확합니다.

바로 마크업과 코드 보시죠.

먼저 마크업입니다.

 

1
2
3
4
5
<div>
    <span>첫번째</span>
    <span>두번째</span>
    <span>세번째</span>
</div>

 

 div 안에 span 태그가 3개가 있네요.

우리는 이제 each 함수로 저 span들의 텍스트를 가지고 올겁니다.

 

1
2
3
$('div').find('span').each(function(i, e){
    console.log($(this).text());
});

 

감이 슬쩍 오실랑가요?

라인별로 설명드리겠습니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

1) 첫번째 셀렉터 div를 기준으로 하위의 span을 찾은 뒤, 반복문(each)을 선언하였습니다.

2) 콘솔창에 span의 수 만큼 반복하여 텍스트를 출력합니다.

결과는 어떻게 나올까요.

첫번째

두번째

세번째

이렇게 나오게 되겠죠?

엄청 간단합니다.

그럼 인덱스(i)를 찍어보면 어떻게나올까요?

0

1

2

예상하신 것처럼 이렇게 나오게 됩니다.

그리고 여기서 익명함수가 발생될때 셀렉터를 보시면 this로 되어있습니다.

this = e 라고 보시면 되겠습니다.

결국 each의 핵심은 셀렉터 입니다.

셀렉터 기준으로 반복하는 것이죠.

예를들어 ul 내부에 li가 10개 있다면 총 반복은 10번 돌게 되는거구요.

100개라면 100번...

너무 당연한 설명을 하는것 같은데 어쩔수없습니다. 진짜 그게다거든요 :D

 

 

응용해서 XML 파싱에서 사용해 봅시다.

 

1
2
3
4
5
6
7
$.ajax({
    url : "요청경로",
    type : "POST",
    success : function(xml){
         
    }
});
 
1
2
3
4
5
6
7
8
9
10
<문서>
    <doc>1</doc>
    <doc>2</doc>
    <doc>3</doc>
    <doc>4</doc>
    <doc>5</doc>
    <doc>6</doc>
    <doc>7</doc>
    <doc>8</doc>
</문서>

 

 서버에 요청 후 나온 결과물이 위의 XML 이라고 하였을때, each를 통하여 doc 부분의 텍스트를 가져오겠다 라고하면.

 

1
2
3
$(xml).find('문서').find('doc').each(function(i, e){
    console.log($(this).text());
});

 

 이렇게 하시면 됩니다.

따지고보면 엘리먼트나 XML 이나 별차이 없습니다.

그냥 셀렉터만 잘잡으면 그만입니다.

이제 UI 단에서도 일괄적으로 each를 통하여 변경할 수있고..

값도 변경할 수있고..

여러가지 할 수 있습니다.

익명함수 내부에서 발생하는 행위는 성질에맞게 잘 구현하시면 됩니다.

어렵지않은 반복문인데 처음에는 구문이 어색할 수 있으므로 자주 사용해보면 좋을 것 같습니다. :D

 



출처: http://annotations.tistory.com/59 [Annotation]

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
13 [웹 어셈블리, WSAM] Persisting data with Emscripten : Emscripten으로 데이터 유지하기 졸리운_곰 2024.04.20 381
12 [웹 어셈블리, WSAM] Porting a Linux Program to Run in Browser using Emscripten : mscripten을 사용하여 브라우저에서 실행되도록 Linux 프로그램 포팅 졸리운_곰 2024.04.20 392
11 [웹 어셈블리, WSAM] An example of emscripten with WebSocket. file 졸리운_곰 2023.12.12 462
10 [웹 어셈블리, WSAM] サーバサイドはWebAssemblyの夢を見るか? – Node.jsでwasmってみた : 서버 측은 WebAssembly의 꿈을 꾸는가? – Node.js에서 wasm 해 보았습니다. file 졸리운_곰 2023.08.27 366
9 [웹 어셈블리 WSAM, webassembly] WebAssembly on the server-side : 서버측 웹어셈블리 file 졸리운_곰 2023.08.27 504
8 [Blazor][WASM] Awesome Blazor file 졸리운_곰 2021.08.15 20070
7 [Blazor][C# .net] Blazor와 C#으로 풀스택 웹 개발하기 file 졸리운_곰 2021.08.15 444
6 [WASM][web assembly] 웹 어셈블리를 보다 쉽게 웹 어플리케이션에 적용하는 방법 file 졸리운_곰 2021.07.19 428
5 Using Blazor, Tensorflow and ML.NET to Identify Images file 졸리운_곰 2021.07.03 529
4 [WASM][WebAssembly] The Top 81 Emscripten Open Source Projects 졸리운_곰 2021.04.19 518
3 [WebAssembly][WSAM] Blazor와 WebAssembly 소개 file 졸리운_곰 2021.03.28 516
2 Webassembly Tutorial using Emscripten file 졸리운_곰 2020.10.24 646
1 [웹어셈블리] Visual Studio 2019와 Emscripten (emcc) 개발 file 졸리운_곰 2020.10.18 2094
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED