반응형
오늘은 제이쿼리의 each와 data에 대해 알아보도록 하겠습니다.
1. "each"이란?
- 제이쿼리의 객체 수만큼 반복하는 함수
- 자바스크립트의 for문과 유사
- 선택자에게 속성을 순서대로 지정
$('선택자').each(function(){ });
2. "data-XX"는?
- 내가 원하는 값을 태그에 저장
- 제이쿼리의 내장된 속성과 구분이 되지 않으면 혼란을 줄 수 있어서 주의!!
- HTML5에서 새로 나온 속성
- 새로운 선택자 잡는 법
예제를 한번 풀어볼까요??
웹브라우저에 이런 구조를 만들어주고 번호를 클릭했을때 배경색이 바뀌도록 만들어보겠습니다.
먼저 기본구조부터 만들어야 하겠죠??
<script>에 src로 제이쿼리를 연결해주고 그 뒤에 <script>를 작성합니다.
이제 body 구조를 짜보도록 하겠습니다.
간편하게 ul로 box를 만들어주고 li로 숫자를 감싸줍니다. 이제 style 시트로 올라가서 꾸며줍니다.
웹브라우저를 확인해보면,, 이러한 결과를 볼 수 있습니다.
이제 클릭했을 때 li의 배경색상이 바뀌게 script로 가줍니다.
$(document).ready(function(){
$('#box>li').each(function(index){
$(this).attr('data-a',index);
});
=>attr()로 태그에 속성을 추가한다.
=>data-XX는?
- 태그의 속성
- index 순서값을 지정
});
이렇게 지정했을 때 웹브라우저에서 검색창을 눌러보면 <li>에 data-a로 순서값이 정해진 것을 볼 수가 있습니다.
이제 클릭했을 때, <li>의 배경색상이 바뀌도록 이벤트를 짜면 됩니다.
$(document).ready(function(){
$('#box>li').each(function(index){
$(this).attr('data-a',index);
}).click(function(){
var i = $(this).attr('data-a);
=> #box안쪽의 li에게서 지정한 data-a 값을 가져온다.
=> 내가 클릭한 요소의 순서값을 변수에 저장
$('#box>li').eq(i).addClass('active');
=> 추가된 active라는 이름의 Class를 #box안쪽의 li에게 순서대로 값을 준다.
=> addClass는?
- style시트에서 작성된 active(내가 원하는 클래스명)라는 클래스를 li에게 추가해준다는 뜻
});
});
이렇게 작성하면 됩니다.
여기서 active라는 이름으로 작성한 이벤트는 style시트에 올라가서 작성하면 됩니다.
<style>
--------------
.active{
background-color: lightseagreen;
}
</style>
웹브라우저에서 확인해볼까요??
자, 클릭했을 때 li의 배경 색상이 바뀌는 것을 볼 수 있네요. 완성입니다!
반응형
'일상 > IT' 카테고리의 다른 글
웹퍼블리셔-입문]input태그 (0) | 2021.11.01 |
---|---|
웹퍼블리셔-입문]background (0) | 2021.10.27 |
웹퍼블리셔-입문]제이쿼리 (0) | 2021.09.15 |
웹디자인기능사]필기 일주일 공부 후 합격!! (0) | 2021.09.07 |
웹퍼블리셔-입문]CSS 선택자 (0) | 2021.09.07 |
댓글