자주 쓰는 Javascript 정리 / Javascript 문법
자주 쓰는 Javascript
Javascript 기초 문법
https://0songha0.github.io/web-dev/2025-07-14-1
문자열 관련 처리
https://0songha0.github.io/web-dev/2022-03-10-1
Javascript로 CSS 스타일 변경
https://0songha0.github.io/web-dev/2022-03-13-1
서버 요청 전 처리
https://0songha0.github.io/web-dev/2022-03-24-1
Javascript로 HTML 요소 추가
https://0songha0.github.io/web-dev/2023-01-25-1
Javascript 정규표현식
https://0songha0.github.io/web-dev/2022-08-01-1
document ready 완료 후 실행
<script>
document.addEventListener("DOMContentLoaded", function() {
// 실행 코드
});
</script>
몇 초 지연 후 실행
console.log("시작");
setTimeout(function() {
console.log("3초 후 실행");
}, 3000);
console.log("종료");
setTimeout은 비동기 방식으로 동작하며, 뒤에 오는 코드는 기다리지 않고 바로 실행됩니다.
엔터 키 이벤트 처리
// 인풋에 엔터 키 이벤트 발생 시 처리
document.getElementById("인풋ID").addEventListener("keyup", function(event) {
if (event.key === "Enter") {
함수명();
}
});
change 이벤트 부여
document.getElementById('인풋ID').addEventListener('change', 동작함수);
단, hidden 인풋에는 change 이벤트를 부여해도 동작하지 않습니다.
자식 요소 찾기
const keywordList = document.getElementById("keywordDiv").children;
for (let i = 0; i < keywordList.length; i++) {
console.log(keywordList[i]);
}
childNodes | 주석, 텍스트 노드도 자식 노드로 포함하여 반환합니다. |
children | 비 요소 노드를 제외한 자식 노드들만 반환합니다. |
부모 노드 삭제
document.getElementById("ID명").parentNode.remove();
현재 페이지 새로고침
location.reload(true);
location.href = location.href;
history.go(0);
위 3가지 방법 중 아무거나 사용하면 됩니다.
다른 페이지로 리다이렉트
window.location.href = "http://URL";
특정 요소로 스크롤 이동
location.href = "#" + 요소Name;
페이지 로드 시 원하는 요소 위치로 스크롤을 이동하려면, 위 로직을 document ready 안에 넣으면 됩니다.
라디오 체크 처리
document.getElementById("라디오InputID").checked = true;
토글 버튼 클릭 이벤트 부여
<c:forEach items="${itemsList}" var="row" varStatus="i">
</div>
<div class="canvas-btn-wrap">
<div class="toggle-wrap">
<div class="toggle-btn type02">
<input type="checkbox" class="checkbox" onclick="togleCanvas(this, ${row.itemId})">
<div class="knobs"></div>
<div class="layer"></div>
</div>
</div>
</div>
</div>
</c:forEach>
위 캔버스 열기/닫기 버튼 토글 버튼 checkbox 클릭 시 아래 javascript 함수가 동작하도록 합니다.
function togleCanvas(checkbox, itemId) {
if (checkbox.checked) {
openCanvas(itemId);
} else {
closeCanvas(itemId);
}
}
클래스명을 가진 모든 요소에 반복
const elements = document.querySelectorAll(".클래스명");
elements.forEach(function(element, index) {
element.setAttribute("id", "ID명_" + (index + 1)); // ID 부여
element.classList.add("신규클래스명"); // 클래스명 부여
element.value = "값"; // 값 설정
});
querySelectorAll는 NodeList를 반환하여 forEach를 사용할 수 있고,
getElementsByClassName은 HTMLCollection를 반환하여 forEach를 사용할 수 없습니다.
ID로 찾은 요소에 클래스명 있는지 확인
const dom = document.getElementById("ID명");
if (dom !== null && dom.classList.contains("클래스명")) {
// 클래스명이 있는 경우 처리
}
ID가 특정문자열로 시작하는 Dom의 수
const elements = document.querySelectorAll('[id^="특정문자열"]');
console.log(elements.length);
Javascript 이벤트 강제 발생 처리
change 이벤트 강제 발생
document.getElementById("ID명").dispatchEvent(new Event("change"));
click 이벤트 강제 발생
document.getElementById("ID명").click();
Javascript 데이터 저장
로컬스토리지 사용법
// 로컬스토리지 초기화
localStorage.clear();
// 로컬스토리지에 JSON 객체를 String으로 변환하여 저장
localStorage.setItem("키", JSON.stringify(objUserInfo));
// 로컬스토리지에서 JSON 스트링 조회하여 JSON 객체로 변환
const 객체명 = JSON.parse(localStorage.getItem("키"));
// 로컬스토리지에 저장된 키-값 삭제
localStorage.removeItem("키");
로컬스토리지는 전역 객체이므로, Javascript에서 import 없이 사용할 수 있습니다.
window 객체의 속성이라 window.localStorage로도 접근 가능합니다.
세션스토리지 사용법
// 세션스토리지 초기화
sessionStorage.clear();
// 세션스토리지에 JSON 객체를 String으로 변환하여 저장
sessionStorage.setItem("키", JSON.stringify(objUserInfo));
// 세션스토리지에서 JSON 스트링 조회하여 JSON 객체로 변환
const 객체명 = JSON.parse(sessionStorage.getItem("키"));
// 세션스토리지에 저장된 키-값 삭제
sessionStorage.removeItem("키");
세션스토리지는 전역 객체이므로, Javascript에서 import 없이 사용할 수 있습니다.
window 객체의 속성이라 window.sessionStorage 접근 가능합니다.