본문 바로가기
JSP/Muzi

[Javascript] 요소 (생성, 삽입, 삭제)

by 미눅스[멘토] 2025. 1. 2.
728x90

요소 - 자바스크립트 or 제이쿼리를 활용해서 html 요소를 생성할 수 있음

 

자바스크립트

1. 요소 생성

  • createElement : 요소(태그)를 만드는 메서드
  • createTextNode : 글자를 만드는 메서드
let el_h1 = document.createElement("h1");
let txt_h1 = document.createTextNode("안녕하세요");

2. 요소 속성

  • 속성 설정 : setAttribute('속성명', '속성값');
    setAttribute('class', 'minwoo')
  • 속성값 찾기 : getAttribute('속성명');
    getAttribute('class'); //minwoo

3. 요소 삽입

  • prependChild(삽입할 요소) : (첫번째) 자식으로 삽입
  • appendChild(삽입할 요소) : (마지막) 자식으로 삽입
let el_h1 = document.createElement("h1");
let txt_h1 = document.createTextNode("안녕하세요");

el_h1.appendChild(txt_h1);

4. 요소 삭제

  • removeChild(삭제할 요소)

5. 사용 예시

let el_ul = document.createElement("ul");
let el_li = document.createElement("li");
let txt_li = document.createTextNode("menu");

el_li.appendChild(txt_li);
el_ul.appendChild(el_li);
document.getElementsByClassName('box')[0].appendChild(el_ul);

제이쿼리( Jquery)

1. 요소 삽입

  • prepend : 선택한 요소의 첫번째 자식
    prepend => $('선택자').prepend('삽입할 코드');
    prependTo => $('삽입할 코드').prepend('선택자');
  • append : 선택한 요소의 마지막 자식
    append => $('선택자').append('삽입할 코드');
    appendTo => $('삽입할 코드').appendTo('선택자');
    • 주의 : css를 같이 명시하는 경우 
    • $(list).appendTo('body').css({color:'red'}) => red가 list 에 담아놓은 요소에 적용됨 $(list).appendTo('body').css({color:'red'}) => red가 list 에 담아놓은 요소에 적용됨
for(let i = 0; i < 2; i++) {
    let list = `<h1>제이쿼리 요소생성 ${i}</h1>`;
    $(list).appendTo('body').css({color: 'red'}); //body에 list 삽입해라
}

 


 클래스 변경

자바스크립트

1. 클래스 확인

  • 요소.className : 특정 요소의 클래스 값을 문자 형태로 가져온다.
    (실수로라도) 해당 요소의 클래스 사이에 빈칸들이 있으면 split(" ")으로 분리시킬 때 방 번호 잡기 힘들다.
  • 요소.classList - 배열로 받아온다.
    - (클래스가 하나만 있어도 0번방)
    - (읽기 전용 프로퍼티)

2. 클래스 추가

  • 요소.classList.add('클래스명', '클래스명', '클래스명', ...)

3. 클래스 수정

  • 요소.classList.replace("없앨 문자열", "삽입할 문자열")

4. 클래스 삭제

  • 요소.classList.remove('클래스')
  • 요소.classList.remove('클래스','클래스','클래스',.....)
  • 요소.className = ""; <= 전부를 다 삭제할 경우

5. 클래스 토글 ⭐⭐⭐⭐⭐

  • 해당 요소에 클래스가 있으면 삭제, 없으면 넣어줌
  • 요소.classList.toggle('클래스')

6. 클래스 contains

  • 해당 요소에 클래스가 있는지 확인
  • 있으면 true, 없으면 false

사용 예시

html

<div id="wrap">
  <div class="size border font" id="box">box1</div>
  <div class="border" id="box2">box2</div>
</div>

css

<style>
    .size {
    width: 100px;
    height: 100px;
    }

    .border {
    border: 1px solid;
    }
    .font {
    font-size: 50px;
    }

    .bg_red {
    background-color: red;
    }

    .bg_green {
    background-color: green;
    }
</style>

javascript

let el_box = document.getElementById('box');
let el_box2 = document.getElementById('box2');

// 1) 확인
console.log(el_box);
console.log(el_box.className);
console.log(el_box.classList);

// 2) 추가
el_box.classList.add('bg_red');
el_box.classList += 'bg_red';
el_box2.classList.add('font', 'size', 'bg_red');
el_box2.classList += 'font size';

// 3) 수정
el_box2.classList.replace('bg_red', 'bg_green');

// 4) 삭제
el_box2.classList.remove('bg_green');

// 5) 모두 삭제
el_box2.className = '';

// 5) toggle
el_box2.classList.toggle('bg_red'); // 현재 el_box 에 bg_blue 없으니까 삽입
el_box2.classList.toggle('bg_red'); // 윗줄에서 넣고 왔으니까 있음. 그래서 삭제

let chk = true;
el_box.addEventListener('click', function(){
  // if(chk) {
  //     el_box.classList.add('bg_blue');
  // }
  // else {
  //     el_box.classList.remove('bg_blue');
  // }
  // chk=!chk

  el_box.classList.toggle('bg_blue');

  // 6) contains
  console.log(el_box.classList.contains('bg_blue'));
})
}

 


$.제이쿼리(Jquery)

1. 클래스 추가

  • $('선택자').addClass('클래스명');

2. 클래스 삭제

  • $('선택자').removeClass(); => 모든 클래스 삭제
  • $('선택자').removeClass('클래스명');
  • $('선택자').removeClass('클래스명 클래스명 클래스명'); => 삭제할 게 여러개면 , (콤마) 없이 빈칸으로만 넣으면 됨

3. 체이닝

  • 선택자가 같으면 함수끼리 . (점)을 이용해서 붙여서 사용

4. 사용 예시

html

<input type="button" value="빨강" id="btn_red">
<input type="button" value="초록" id="btn_green">
<input type="button" value="파랑" id="btn_blue">
<div id="box"></div>

css

<style>
  #box {
  width: 300px;
  height: 300px;
  border: 1px solid;
  }

  .red {background-color: red;}
  .green {background-color: green;}
  .blue {background-color: blue;}
</style>

제이쿼리

$('#btn_red').click(function() {
    $('#box').addClass('red');
    $('#box').removeClass('green');
    $('#box').removeClass('blue');
})
$('#btn_green').click(function() {
    $('#box').removeClass('red');
    $('#box').addClass('green');
    $('#box').removeClass('blue');

})
$('#btn_blue').click(function() {
  // $('#box').removeClass('red green');
	$('#box').removeClass().addClass('blue') // => 체이닝
  // $('#box').addClass('blue')
})

'JSP > Muzi' 카테고리의 다른 글

[Javascript] 구조분해  (0) 2024.08.26
[Javascript] 나만의 Ajax 만들기  (0) 2024.08.26
[Javascript] 즉각실행 함수  (0) 2024.08.26
[Javascript] 배열식 접근법  (1) 2024.08.26
[Javascript] 콘솔로그 console.log() 맛있게 쓰는법  (0) 2024.08.22