제이쿼리를 이용한 태그제어와 ajax

Benjamin·2025년 3월 11일

jQuery는 자바스크립트 라이브러리로, DOM(Document Object Model) 조작, 이벤트 처리, 애니메이션 효과 등을 간단하고 효율적으로 다룰 수 있도록 도와준다. 또한, AJAX를 사용하여 비동기적으로 서버와 데이터를 주고받을 수 있게 해준다. 아래에서 jQuery를 이용한 태그 제어와 AJAX 사용법에 대해 자세히 설명할게.


1. jQuery를 이용한 태그 제어

jQuery를 사용하면 HTML 태그를 쉽게 선택하고, 속성 변경, 스타일 수정, 이벤트 처리, 애니메이션 등을 간단히 할 수 있다. 주로 사용하는 메서드를 중심으로 설명할게.

1.1. HTML 요소 선택

jQuery에서 HTML 요소를 선택하려면 $(선택자)를 사용한다. 선택자는 CSS 선택자와 동일하다.

// id가 'myId'인 요소 선택
$('#myId');

// class가 'myClass'인 모든 요소 선택
$('.myClass');

// 태그 이름으로 선택
$('p');  // 모든 <p> 태그

1.2. HTML 내용 변경

선택한 요소의 텍스트나 HTML을 변경할 수 있다.

// 텍스트 변경
$('#myId').text('새로운 텍스트');

// HTML 내용 변경
$('#myId').html('<b>새로운 HTML 내용</b>');

1.3. 속성 변경

HTML 태그의 속성(예: src, href, alt 등)을 변경할 수 있다.

// 속성 값 설정
$('img').attr('src', 'new_image.jpg');

// 속성 값 가져오기
let imgSrc = $('img').attr('src');
console.log(imgSrc);

1.4. 스타일 변경

선택한 요소의 스타일을 변경할 수 있다. 인라인 스타일을 적용할 수 있다.

// 배경색 변경
$('#myId').css('background-color', 'blue');

// 여러 스타일 변경
$('#myId').css({
  'background-color': 'blue',
  'color': 'white'
});

1.5. 클래스 추가/제거/토글

클래스를 동적으로 추가하거나 제거할 수 있다.

// 클래스 추가
$('#myId').addClass('newClass');

// 클래스 제거
$('#myId').removeClass('oldClass');

// 클래스 토글 (있으면 제거, 없으면 추가)
$('#myId').toggleClass('toggleClass');

1.6. 이벤트 처리

jQuery를 사용하면 HTML 요소에 이벤트 리스너를 쉽게 추가할 수 있다. 예를 들어 클릭, 입력, 마우스 오버 등의 이벤트를 처리할 수 있다.

// 클릭 이벤트 처리
$('#myButton').click(function() {
  alert('버튼이 클릭됨!');
});

// 마우스 오버 이벤트 처리
$('#myDiv').mouseenter(function() {
  $(this).css('background-color', 'yellow');
});

1.7. 애니메이션

jQuery는 애니메이션 기능을 제공해 요소의 위치나 크기 등을 부드럽게 변화시킬 수 있다.

// 요소를 500ms 동안 숨기기
$('#myDiv').hide(500);

// 요소를 500ms 동안 보이게 하기
$('#myDiv').show(500);

// 슬라이드 업
$('#myDiv').slideUp(500);

// 슬라이드 다운
$('#myDiv').slideDown(500);

// 애니메이션을 이용해 크기 변경
$('#myDiv').animate({
  width: '200px',
  height: '200px'
}, 1000);

2. jQuery를 이용한 AJAX

AJAX (Asynchronous JavaScript and XML)는 페이지를 새로고침하지 않고, 백그라운드에서 서버와 데이터를 주고받을 수 있는 기술이다. jQuery는 AJAX 작업을 쉽게 처리할 수 있는 메서드를 제공한다.

2.1. AJAX 기본 사용법

jQuery의 $.ajax() 메서드는 다양한 옵션을 설정할 수 있는 강력한 AJAX 메서드다.

$.ajax({
  url: 'server-url',        // 요청할 URL
  type: 'GET',              // HTTP 요청 방식 (GET, POST 등)
  dataType: 'json',         // 서버에서 반환할 데이터 형식
  success: function(response) {
    // 요청 성공 시 호출될 함수
    console.log(response);  // 서버 응답 데이터 처리
  },
  error: function(xhr, status, error) {
    // 요청 실패 시 호출될 함수
    console.error('에러 발생:', error);
  }
});

2.2. $.get()과 $.post() 메서드

jQuery는 간단한 GET 또는 POST 요청을 보낼 수 있는 $.get()과 $.post() 메서드를 제공한다.

2.2.1. GET 요청
$.get('server-url', function(response) {
  console.log('서버 응답:', response);
});
2.2.2. POST 요청
$.post('server-url', { name: 'John', age: 30 }, function(response) {
  console.log('서버 응답:', response);
});

2.3. 서버로 데이터 전송하기

AJAX를 통해 데이터를 서버로 전송할 수 있다. data 속성에 전송할 데이터를 객체 형태로 넣는다.

$.ajax({
  url: 'server-url',
  type: 'POST',
  data: {
    username: 'JohnDoe',
    email: 'john@example.com'
  },
  success: function(response) {
    console.log('서버 응답:', response);
  }
});

2.4. JSON 데이터 처리

서버와 주고받은 데이터가 JSON 형식일 때는 dataType: 'json' 옵션을 설정하면 자동으로 JSON 파싱이 된다.

$.ajax({
  url: 'server-url',
  type: 'GET',
  dataType: 'json',
  success: function(data) {
    console.log(data);  // JSON 데이터를 자동으로 객체로 변환
  }
});

2.5. 비동기 요청의 순차 처리

AJAX 요청을 비동기적으로 처리할 때, 요청이 완료된 후 후속 작업을 수행하려면 콜백 함수를 사용하거나 Promise와 async/await를 사용할 수 있다.

// 비동기 요청 순차 처리 예시
$.get('server-url-1', function(response1) {
  console.log(response1);
  
  $.get('server-url-2', function(response2) {
    console.log(response2);
  });
});

이렇게 하면 첫 번째 요청이 끝난 후 두 번째 요청이 처리된다.

2.6. AJAX와 async/await 사용하기

ES6에서 제공하는 async/await 문법을 사용하면 AJAX 요청을 동기 방식처럼 처리할 수 있다. async는 함수 앞에 붙여서 비동기 함수를 만들고, await는 비동기 작업이 완료될 때까지 기다린다.

async function fetchData() {
  try {
    const response1 = await $.get('server-url-1');
    console.log(response1);

    const response2 = await $.get('server-url-2');
    console.log(response2);
  } catch (error) {
    console.error('요청 오류:', error);
  }
}

fetchData();

0개의 댓글