Javascript

10. jQuery 알아보기

말랑Cow 2021. 9. 11. 00:00
반응형

jQuery 객체란 ? jQuery 함수가 리턴한 값이다.

 

일반적인 jQuery의 쓰임은 다음과 같다.

$('A').B

$() 이 부분이 jQuery 함수가 되며 A가 jQuery 함수의 인자값이 된다.

A에 대한 jQuery 함수가 리턴한 값이 jQuery 객체가 되는데 그 객체에 대한 프로퍼티가 B 이다.

 

코드로 확인해본다.

<!DOCTYPE html>
<html>
<body>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<ul>
    <li>Kane</li>
    <li>Son</li>
    <li>Alli</li>
</ul>

<script>
    var li = $('li');
</script>
</body>
</html>

li 태그들에 대하여 jQuery 함수의 리턴값을 li 변수에 담았다.

li 변수는 jQuery 객체가 된다.

브라우저에 웹문서를 열고 개발자도구로 확인해 보았다.

jQuery 객체는 유사배열이기 때문에 배열의 값에 대해 사용하는 [] 로 각 배열 데이터를 확인했다.

 

li[1] 은 son 이다. 이 son이라는 값에 대해서 css 메소드를 적용해보려고 했더니 에러가 발생했다.

li[1] 에 대한 객체이름을 보니 HTML Element 이다. 즉, DOM 객체이다.

jQuery 메소드인 css를 DOM 객체에 적용하니 에러가 발생하는 것이다.

따라서 이것을 jQuery 객체로 변경($()) 해준 뒤 잘 적용되는 것을 확인할 수 있다.

 

이번엔 son 이라는 li에 id를 부여해본다.

<!DOCTYPE html>
<html>
<body>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<ul>
    <li>Kane</li>
    <li id="son">Son</li>
    <li>Alli</li>
</ul>

<script>
    var li = $('li');
</script>
</body>
</html>

DOM을 이용하여 ID가 son인 엘리먼트에 대한 객체를 변수 a에 담았다.

a의 객체이름을 보면 HTML Element 이다. (DOM 을 이용하여 생성한 객체이기 때문)

이 DOM 객체를 jQuery 함수의 인자값으로 전달하고 jQuery 메소드인 css를 사용해보면 잘 적용되는 것을 확인할 수 있다.

이것은 DOM 객체를 jQuery 함수의 인자로 전달받아 리턴된 값이 jQuery 객체라는 것을 알 수 있다.

 

다른 코드를 확인해보면,

<!DOCTYPE html>
<html>
<body>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<ul>
    <li>Kane</li>
    <li>Son</li>
    <li>Alli</li>
</ul>

<script>
    var li = $('li');
    li.map(function(index, elem){
        console.log(index, elem);
        $(elem).css('text-decoration', 'underline');
    })
</script>
</body>
</html>

li 태그에 해당하는 엘리먼트들을 jQuery 함수의 인자로 전달하여 리턴된 값을 변수 li에 넣었고 이 값은 jQuery 객체가 된다.

jQuery 메소드 중 map 이라는 메소드가 있는데 이 메소드는 함수를 인자로 받도록 약속되어있다.

이 메소드는 jQuery 함수에 포함되는 엘리먼트들, 즉 jQuery 객체에 담겨진 배열데이터를 하나하나 순회하면서 호출한다.

완전한 배열은 아니지만 유사배열이므로 일반적인 배열처럼 첫번째 값의 인덱스가 0, 두 번째가 1 ... 순으로 지정된다.

 

위 함수에 첫 번째 매개변수는 인덱스를 의미하고 두 번째 매개변수는 해당 엘리먼트를 의미하는 DOM 객체가 된다.

 

결과를 보면,

각 인덱스에 해당하는 DOM 객체가 콘솔창에 출력됨을 확인할 수 있고, DOM 객체를 jQuery 함수의 인자에 담아 생성한 jQuery 객체로 css가 적용되는 모습을 확인할 수 있다.

반응형