TIL

200123 jQuery 기본문법, 함수

잇나우 2020. 1. 24. 00:30
반응형

jQuery

jQuery는 자바스크립트 라이브러리이기 때문에 js파일 형태로 존재한다. html에서 jQuery를 사용하기 위해서는 jQuery 다운받은 후 <script>태그를 사용하여 참조한다고 알려주어야 jQuery의 문법을 html에서 이해할 수 있다.

<head>
    <script src="파일주소/jQuery파일명.js"></script>
</head>

jQuery를 이용하지 않고 자바스크립트만 이용해도 충분히 가능하다. jQuery는 문법같은것을 간소화 시켜 개발자를 편하게 해주는 도구일 뿐이다.

//javascript 문법
window.onload = function(){}

//jQuery 문법
$(document).ready(function(){})

//jQuery 문법 간소화
$(function(){})

3개의 코드 모두 같은 내용으로 똑같이 실행된다. 현재 문서가 브라우저에 로딩시 무명함수를 호출한다.

// jQuery 기본 문법
$("선택자").함수() // *, tag, #id, .class가 선택자에 들어간다.

// 함수는 왼쪽부터 오른쪽으로
$('선택자').함수1().함수2()  // 함수를 여러개를 실행시킬 수 있다.

jQuery에는 다양한 내장 함수들이 존재한다. jQuery에서는 함수를 어떻게 호출하는지 알아보겠다.

// 함수 호출
$.함수() 

$.trim(string)
// trim 함수는 string의 처음과 끝의 공백을 제거해준다.

$("#btn").click( function(){
            data_chk();
})
// id가 btn인 버튼을 클릭했을때 함수가 호출된다.(버튼같은것에만 click함수를 쓸 수 있다.)

$('h2').html('<i> Hello jQuery </i>');
// html() : innerHTML이랑 유사한 기능을 한다. html 문서로 파싱된다.
$('h3').text('<i> Hello jQuery </i>');
// h3 태그안에 text 삽입한다. (html로 파싱되지 않아 <i>태그가 그대로 노출)

특정 선택자에 tag와 문자열을 추가 할수도 있다.'

$("선택자").append(tag);
$(tag).appendTo("선택자");
// 두가지 모두 같은 기능을 제공한다.

var h1 = "<h1> Hello, jQuery1 </h1>";
var h2 = "<h2> Hello, jQuery2 </h2>";
// 태그나 문자열을 변수에 담고 append(변수)를 한다.
$("body").append(h1, h2);
//body태그 안에 h1, h2가 가지고있는 문자열이나 태그가 추가된다.

동일한 선택자가 다수일때 첫번째 선택자를 선택하고 싶을때 쓰는 함수는 first()

$("img").first();
// img 태그가 다수일때 첫번째 한개만 선택하고 싶을때

jQuery에서도 html 태그에서 인라인 방식이나 css처럼 선택자에게 속성과 값을 정해줄 수 있습니다. 간단한 스타일 표현이라면 css와 같은 다른언어가 필요하지 않고 jQuery에서 해결할 수도 있습니다.

// 동적 이미지 : $('선택자').attr('속성','값').attr('속성', '값') 
$('img').attr('src', '../images/img03.jpg').attr('width', '300px');
// 이미지를 넣고 크기를 조절할 수 있다.

$('a').attr('href', 'http://www.naver.com').attr('target', '_blank');
// a태그를 이용하여 링크를 걸수도 있다.

특정한 선택자에 여러 이벤트를 넣고싶다면 bind() 라는 함수를 이용해야 한다.

    $('img').bind({  // bind() : 여러 이벤트를 묶어주는 역할
            // 이벤트 핸들러 : 이벤트 발생 시 처리하는 함수(무명함수로 주로 쓴다.)
            mouseover : function(){  // 마우스가 대상에 올라갔을때
                $('img').attr('src', '../images/but2.gif');    
            },        // 다음 이벤트는 ,를 써서 구분한다.
            mouseout : function(){  // 마우스가 대상에서 벗어났을때
                $('img').attr('src', '../images/but1.gif');    
            },
            click : function(){    // 버튼 클릭 시 
                alert('이미지 버튼 클릭 ~~');
            }        
    });

change()

change() 메소드는 해당되는 요소의 value에 변화가 생길경우 등록된 콜백함수를 동작시킨다.

$('#sel').change(function(sel_ele){
            console.log(sel_ele);
            var tagVal = $(sel_ele.target).val();  // sel_ele -> select.option
            $('#img').attr('src', tagVal);    // tagVal은 변수기 때문에 ""하지 않는다
}).change();   // 재귀호출(자신의 함수를 호출하는 기법)

jQuery를 이용하는 이유중 ajax의 이용도 큰 부분을 차지한다.

$.ajax({
    url : '서버 url or file', // ,를 찍으면 계속하겠다란 의미
    dataType : 'html',      // file type
    success : function(data){
    // data : 서버에서 수신받은 데이터 (자료를 저장하는 매개변수)
    $('선택자').html(data); // data -> html로 파싱
    }
});  // ajax end
// $.each() : 객체의 원소를 처리하는 함수
    $.each(obj, function(index, item){
        실행문;
    });    
// each()는 객체의 원소만큼 반복함 자체 for문
반응형

'TIL' 카테고리의 다른 글

[TIL] 200824 JAVA. HashMap의 getOrDefault()  (0) 2020.08.24
[TIL] 200730 spring boot에서 mongodb 사용하기  (0) 2020.07.31
200122 HTML5, CSS3 추가된 것들  (0) 2020.01.22
200121 Date(), RegExp, Ajax  (0) 2020.01.21
200120 DOM, event, object  (0) 2020.01.20