웹제작 강의
[웹개발강의] 자바스크립트로 HTML 요소 다루기 (id, class, input)
Coding Life
2025. 4. 21. 16:11
자바스크립트로 HTML 요소 다루기 (id, class, input)
1. HTML 요소 예시
<p id="test">기본 텍스트</p>
<div class="display">여기에 값이 표시됩니다</div>
<input type="text" id="username" placeholder="이름 입력">
2. 요소를 선택하는 방법
📌 id로 선택: getElementById()
const p = document.getElementById("test");
→ HTML에서 id="test"인 <p> 요소를 가져옵니다.
📌 class로 선택: querySelector() 또는 getElementsByClassName()
const div = document.querySelector(".display"); // 첫 번째 요소만
// 또는 여러 개를 모두 가져오려면:
const divs = document.getElementsByClassName("display");
📌 input 값을 가져오기: value 사용
const input = document.getElementById("username");
let name = input.value; // 입력한 값 읽기
3. 요소의 내용을 바꾸기
📌 텍스트를 넣기
document.getElementById("test").textContent = "바뀐 내용입니다!";
→ <p>의 텍스트가 변경됩니다.
📌 class 요소 안의 내용을 바꾸기
document.querySelector(".display").textContent = "결과를 여기에 표시";
4. input 요소에서 값을 읽고 다른 요소에 출력해보기
<input type="text" id="username" placeholder="이름 입력">
<button onclick="showName()">확인</button>
<p id="result"></p>
function showName() {
const name = document.getElementById("username").value;
document.getElementById("result").textContent = "안녕하세요, " + name + "님!";
}
📌 실행 예시:
- username에 철수를 입력하고 버튼 클릭 → 안녕하세요, 철수님! 이 출력됩니다.
요약표
목적코드
id로 요소 선택 | getElementById("id이름") |
class로 요소 선택 | querySelector(".클래스명") |
input 값 읽기 | input.value |
텍스트 변경 | 요소.textContent = "내용" |
HTML 내용 변경 | 요소.innerHTML = "<b>굵게</b>" |
input 요소에 값을 넣을 때와,
innerHTML과 textContent의 차이점은 자바스크립트를 제대로 이해하기 위해 꼭 알아야 하는 핵심 개념
1. input 요소의 값을 “넣는” 방법 (쓰기)
📌 예시 HTML
<input type="text" id="username">
📌 자바스크립트로 값을 넣기 (set)
document.getElementById("username").value = "홍길동";
📌 실행 결과:
→ input 칸에 자동으로 "홍길동"이라는 텍스트가 입력됩니다.
2. input 요소의 값을 “불러오기” (읽기)
const name = document.getElementById("username").value;
→ 사용자가 입력한 값을 변수에 저장할 수 있습니다.
3. innerHTML vs textContent 차이
항목innerHTMLtextContent
설명 | HTML 태그 포함 | 텍스트만 |
태그 처리 | 태그를 해석함 | 태그를 글자 그대로 출력함 |
보안 이슈 | XSS(스크립트 삽입) 위험 있음 | 없음 |
사용 목적 | 태그가 들어간 구조 표시 | 단순한 글자 표시 |
📌 비교 예제
<p id="demo"></p>
// 1. innerHTML 사용
document.getElementById("demo").innerHTML = "<b>굵은 글씨</b>";
// 2. textContent 사용
document.getElementById("demo").textContent = "<b>굵은 글씨</b>";
📌 결과:
- innerHTML → 굵은 글씨 (실제로 굵게 보임)
- textContent → <b>굵은 글씨</b> (그대로 글자로 보임)
언제 어떤 걸 써야 하나요?
목적추천 속성
HTML 태그 포함해서 넣을 때 | innerHTML |
안전하게 텍스트만 넣을 때 | textContent |
사용자 입력 등 외부 값 넣을 때 | textContent 또는 .value (input) |
✏️ 정리
- input.value → 입력 값 읽거나 쓰기
- innerHTML → 태그까지 해석해서 HTML 구조를 바꾸고 싶을 때
- textContent → 안전하게 텍스트만 넣고 싶을 때
반응형