JavaScript/JQuery

JQuery 기본 문법

SeaPlus 2021. 9. 15. 11:24


JQuery란? javascript를 사용함에 있어 좀더 편리하도록 하는 오픈소스 라이브러리 입니다. 

하지만 인터넷 브라우저가 IE가 대부분 이던 과거와는 달리 오늘날은 chrom과 같은 브라우저 에서 더 우수한 렌더링 엔진을 탑재하였고 빠른 버전 업그레이드를 위해 웹 표준을 신속하게 반영하였습니다. 

그 결과 제이쿼리와 같은 무거운 라이브러리를 쓰지 않고도 양질의 웹 어플리케이션을 구현할수 있게 되었습니다.

 

하지만 개발자들 사이에서 위상이 예전과 같지 않다고 해도 여전히 사용률은 높고 기존에 jQuery로 작성된 웹 어플리케이션 또한 많은 상황 입니다. 

 

따라서 제이쿼리의 기초적인 문법과 축약함수들을 알아둘 필요는 있다고 생각합니다.

 

 

 

[제이쿼리 기초문법]

1. 셀렉터

//바닐라 js
document.getElementByID('title').innerHTML = '바보';
document.getElementByID('title').stlye.color = 'red';

//jquery 
$('#tiltle').html('바보');
$('#tiltle').css('color','red');

- 페이지 내의 ID가 title이라는걸 찾아서 내용을 '바보'로 바꾸라는 의미입니다.

- JQuery가 훨씬 짧게 쓸수 있습니다.

- JQuery는 셀렉터내부의 값이 ID인지 Class 인지 등을 " #, . " 로 표현합니다. 

 

//바닐라 js
document.getElementByClassName('greeting')[0].innerHTML = '안녕';
document.getElementByClassName('greeting')[1].innerHTML = '안녕';
document.getElementByClassName('greeting')[2].innerHTML = '안녕';

//jquery
$('.greeting').html('안녕')


$('.greeting').eq(0).html('안녕')

- getElementByClassName()은 class명으로 찾아주는 셀렉터 입니다.

- 항상 뒤에 [0]와 같은 인덱스 값을 적어야 해서 전줍 선택하려면 인댁스  수만큼 작성해야 한다.

(querySelectorAll() 이라는 유사품 셀렉터도 있습니다.)

 

-반면 jquery는 셀렉터로 요소를 찾을경우 요소가 여러개 있어도 한번에 다 바꿔줍니다.

- 뒤에 eq()라는 명령어를 통해 인덱스 값을 지정 가능합니다.

 

 

 

2. 간편한 애니메이션

- 웹페이지를 구현하는데 있어 기본적인 애니메이션들을 제공하는 함수가 있습니다.

- 바닐라js로 작성하려면 시간이 걸리지만 jquery를 사용하면 손쉽게 구현할 수 있습니다.

함수 기능

$("
h1").hide();

사라지는 효과

$("h1").show();
나타나는 효과

$("h1").fadeIn();
서서히 나타나는 효과

$("h1").fadeOut();
서서히 사라지는 효과

$("h1").slideDown();
위에서 아래로 내려오는 효과

$("h1").slideUp();
아래에서 위로 올라오는 효과
$("h1").toggle(); toggle()은 선택한 요소가 보이면 보이지 않게, 보이지 않으면 보이게 합니다.

 

 

3. form의 값을 가져오거나 설정하는 방법

let hi = $('#text-input').val();

- val() : 선택한 양식의 값을 가져옵니다.

- hi 변수에  id 가 text-input 인 요소의 값을 저장

let hi = $('#text-input').val('ABCDE');

- val('값'): 선택한 양식의 값을 변경합니다.

- hi1 변수에 id 가 text-input 인 요소의 값을 'ABCDE'로 변경하여 저장

 

 

4. 제이쿼리 함수를 순서대로 동작 시키고 싶은 경우

바닐라 js

$('.black-background').show();
$('.black-background').animate({ marginTop : '0px' });

이렇게 쓰면 무조건 show()를 먼저 해주고 animate()를 그 다음에 해줄 것 같지만 경우에 따라서 둘 중에 더 빠른걸 먼저 실행시킬 수도 있습니다.

 

 

jQuery

$('.black-background').show().animate({ marginTop : '0px' });

- 이렇게 쓰면 무조건 show()를 먼저 해주고 animate()를 그 다음에 해줍니다.

 

 

각자 다른요소를 순차적으로 적용시키고 싶을때!

$('A요소').animate({ width: '250px'}, 1000, function() {
  $('B요소').animate({ height : '500px'}  });
});

- animate 함수의 세번째 파라미터로 function(){} 를 집어넣으신 다음 중괄호 안에 여러분이 첫 animate가 끝났을 때 실    행할 코드를 적어주시면 됩니다.

 

- 콜백함수는 이렇게 뭔가 순차적으로 실행시킬 때 많이 사용합니다.