⊗jsPmDmLNH 359 of 505 menu

JavaScript에서 루프를 사용하여 이벤트 핸들러 추가하기

이제 요소들에 대량으로 이벤트 핸들러를 추가하는 방법을 배워봅시다. 예를 들어, 다음과 같은 단락이 있다고 가정해 보겠습니다:

<p>text1</p> <p>text2</p> <p>text3</p>

또한 다음과 같은 함수가 있다고 가정해 봅시다:

function func() { console.log('!'); }

이제 단락들을 루프로 순회하며 각 단락에 클릭 핸들러로 함수 func를 추가해 봅시다:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); }

한 걸음 더 나아가, 어떤 단락을 클릭하든지 해당 단락의 텍스트가 출력되도록 만들어 봅시다. 그러나 문제가 하나 있습니다: 단락은 많은데, 핸들러 함수는 하나뿐입니다. 핸들러 함수 내부에서 우리의 단락들을 어떻게 구분할 수 있을까요?

this 객체가 이를 도와줄 것입니다 - 이벤트 발생 시점에 함수가 호출될 때, 이 객체는 이벤트가 발생한 요소를 가리키게 됩니다. 앞서 설명한 내용에 따라 함수 func의 코드를 수정해 보겠습니다:

function func() { console.log(this.textContent); // 단락의 텍스트를 출력합니다 }

다음 함수가 주어졌습니다:

function func() { this.value = Number(this.value) + 1; }

또한 입력 필드들이 주어졌습니다. 우리 입력 필드 중 어느 하나에서 포커스를 잃을 때 위의 함수가 실행되도록 만드세요.

숫자가 있는 단락들이 주어졌습니다. 어떤 단락을 클릭하든지 그 안의 숫자가 제곱이 되도록 만드세요.

한국어
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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부