jQuery
Light-weight (경량의 자바스크립트 Library)
크로스 브라우징 지원 ---------------------------------------------┐
강력한 셀렉트 제공 │
대상 엘리먼트 찾기 │
이벤트 붙이기/ 삭제, 스타일 변경, html조작 │ ----- 코드의 간결화
묵시적 반복을 한다. │
method chainning을 지원 ---------------------------------┘
Ajax 지원
다양한 이펙트
다양한 플러그인 지원
대칭성을 가지고 있다.
jquery min.js → 압축된버전
jquery.js → 개발자 버전(일반 코드처럼 정렬됨)
웹 개발 ← front-end dev tool
sublime text ← html, js, ruby, python, …
bracket
API(Application Programming Interface)
해당 프로그램 혹은 라이브러리에서 제공하는 기능
그 기능에 대한 문서(메뉴얼 / 설명서)
jQuery 사용하기
jquery 라이브러리를 include한다.
jquery는 Document객체가 준비되면(사용할 수 있을 때) 적절한 작업이 수행되도록
할 수 있다.
<script>
$(document).ready(function(){
// 적절한 작업
});
</script>
<script>
$(function(){
// 적절한 작업
});
</script>적절한 작업
웹페이지가 로딩됬을때 수행할 작업
웹페이지의 특정한 부분에 스타일을
이벤트 발생시 실행할 함수를 각각의 엘리먼트에 붙인다.
ajax를 이용해서 초기값을 서버로 부터 가져온 다음, 표시한다.
jquery의 $( ) 사용법
$(“셀렉터).조작함수()
셀렉터 표현식이 지정한 엘리먼트를 검색한다.
검색된 엘리먼트를 대상으로 조작함수를 적용한다.
$(“p”).css(“color”, “red”);
$(“.intro p”).css(“color”, “red”);$(엘리먼트).조작함수()
지정된 엘리먼트를 대상으로 조작함수를 적용한다.
<input type=”password” id=”passwordbox” />
var el = document.getElementById(“passwordbox”);
$(el).val(“비밀번호를 입력하세요”);$(함수)
지정된 함수는 웹페이지가 로딩이 완료되면 자동으로 실행된다.
jquery 선택자
기본 선택자
$(“*”) 모든 엘리먼트
$(“element”) 태그명에 해당하는 모든 엘리먼트
$(“#id”) 아이디 값이 일치하는 엘리먼트
$(“.class”) 클래스값이 일치하는 모든 엘리먼트
$(“selector1, selector2, selector3”) 나열된 선택자와 일치하는 모든 엘리먼트
$(“p:first”) 첫번째 p
$(“p:last”) 마지막 p
$(“tr:even”) 짝수번째 tr
$(“tr:odd”) 홀수번째 tr
$(“p:first-child”) 부모한테서 첫번째 자식인 p
$(“p:last-child”) 부모한테서 마지막 자식인 p
$(“p:nth-child(숫자)”) 부모한테서 지정된 순번에 해당하는 p
$(“p:nth-child(2)”) 부모한테서 2번째 순번에 해당하는 p
nth-child는 1부터 시작한다.
$(“parentSelector selector”) 부모선택자에 의해서 선택된 엘리먼트의
모든 자손엘리먼트를 선택한다.
$(“div p”) div안의 모든 p엘리먼트
부모 - 지정된 엘리먼트의 한단계 위의 엘리먼트
자식 - 지정된 엘리먼트의 한단계 아래의 엘리먼트
조상 - 지정된 엘리먼트의 모든 상위 엘리먼트
자손 - 지정된 엘리먼트의 모든 하위 엘리먼트
// jQuery에서 $()와 $.
$()
$(“셀렉터”).조작함수()
→ 셀렉터를 사용해서 선택된 엘리먼트를 대상으로 작업을 한다.
$.
→ jQuery에서 제공하는 유틸함수를 사용할 수 있다.
→ jQuery 유틸함수는 선택된 엘리먼트를 대상으로 하지 않는 작업
$.ajax();
$.trim();
$.each();
$().each()
$.each()
$(selector).attr(name) - 속성값 읽기
$(selector).attr(name, value) - 속성값 변경하기
$(selector).removeAttr(name) - 속성 삭제하기
$(selector).val() - 폼요소의 값 읽기
$(selector).val(value) - 폼요소의 값 변경하기
$(selector).text() - 태그를 제외한 텍스트 읽어오기
$(selector).text(textcontent) - 텍스트 변경하기
$(selector).html() - html 읽어오기
$(selector).html(htmlcontent) - html 변경하기
$(selector).css(name) - 스타일 값 읽기
$(selector).css(name, value) - 스타일 값 변경하기
$(selector).prop(property) - 엘리먼트의 property값 읽기
$(selector).prop(property, value) - 엘리먼트의 property값 변경하기
$(selector).addClass(class) - 클래스 추가
$(selector).removeClass(class) - 클래스 삭제
$(selector).toggleClass(class) - 클래스 토글
prop와 Attribute
$(selector).attr(name, value)
→ 태그의 attribute 제어(name, id, ….)
$(selector).prop(name, value)
→ 엘리먼트 property 값을 제어(select의 option, selectedindex…) (ex)체크박스 사용시
load와 ready
jquery사용 이전에는 웹 페이지 로딩시점에 코드를 실행시키기 위해서
onload이벤트를 사용했었다.
jQuery에서는 onload대신, onready 이벤트를 사용한다.
$()와 $.
$(selector)는 selector를 사용해서 선택된 엘리먼트를 대상으로 사용할 수 있는
jQuery함수를 붙여서 쓸 수 있다.
$.은 jQuery의 유틸 메소드를 붙여서 사용할 수 있다.
jQuery의 method chainning
jQuery의 method들은 대부분 $(selector)을 사용해서 선택된 엘리먼트를 유지시킨다.
하지만 선택된 엘리먼트를 유지시키지 않는 메소드도 있다.
대부분 getter/setter역할을 수행하는 메소드다.
$("li").css("color", "red").size(); //사용가능
$("li").size().css("color", "red"); //에러 발생
차이에 주의!
div#test1 : id가 test1인 div
div #test1 : div안에 들어있는 id가 test1인 엘리먼트
자손 선택자 : $(“#test p”) → [inner p1, p2]
자식 선택자 : $(“#test > p”) → [p1, p2]
동생선택자 : $(“span + p”) → [p1]
동생들 선택자 : $(“span ~ p”) → [p1, p2]
prev()와 next(), children(), eq()
같은 depth상에서 앞뒤로 움직임
.prev() : 엘리먼트 한칸 앞으로
.next() : 엘리먼트 한칸 뒤로
.children() : 선택된 엘리먼트의 모든 자식 엘리먼트(자손들 제외)
.eq(index) : 선택된 엘리먼트들 중에서 지정된 순번의 엘리먼트
attribute 선택자 []
$("[name]")
$("[name=value]")
$("[name^=value]")
$("[name$=value]")
$("[name*=value]")
// $("div :not(:checked)") :div안의 엘리먼트 중 체크되지 않은것
// $("div :not(:checked)").filter(":radio") :div안의 엘리먼트 중 체크되지 않은것들 중 radio인것
.filter( ) 사용하기(엄청나게 막강한 도구! ★★★★)
$(first-selector).filter(second-selector)
:first-selector를 사용해서 선택된 것들 중에서 second-selector에 해당하는 것만걸러낸다.
$(“td”).filter(“:contains(‘1학년’)”);
$(first-selector).filter(function(index, el) { })
:first-selector를 사용해서 선택된 것들 하나 하나 마다 function( ){ }이 실행된다.
function( )을 실행해서 true가 반환되는 것만 걸러낸다.
:index에는 순번(0부터 시작)이 el에는 first-selector에서 검색된 엘리먼트가 순서대로
하나씩 전달된다.
:function( ) {// true나 false값을 반환하는 코드가 있어야한다.}
예제) $(“td”).filter(function(index , el){
var text = $(el).text();
if (text === ‘1학년’) {
return true;
} else {
return false;
}
})
jQuery의 이벤트처리 및 이벤트 발생
이벤트 핸들러 등록하기
이벤트 핸들러: 이벤트 발생했을 때 실행할 함수
$(selector).click(실행될 함수);
$(selector).on(“click”, 실행될 함수);
$(“a”).click(function(event){ // a를 클릭하면 여기가 실행된다;} )이벤트 강제 발생
이벤트 트리거 : 선택한 엘리먼트에서 이벤트를 발생시킨다.
$(selector).click(); → 함수를 적지 않으면 이벤트를 발생시킨것 같은 효과를 줌
$(selector).trigger(“click”);
jquery 이벤트 처리
click(); : 선택된 요소를 클릭했을 때
dbclick(); : 선택된 요소를 더블클릭 했을 때
mouseover(); : 마우스를 요소에 올려놓을 때
mouseout(); : 마우스가 요소에서 벗어났을 때
focus(); : 해당 요소에 포커스가 생겼을 때 (tab키 눌렀을 때 포함)
blur(); : 해당 요소가 포커스를 잃을 때
focusin(); : input 요소가 포커스를 얻었을 때
focusout(); : input 요소가 포커스를 잃었을 때
keydown(); : 키를 눌렀을 떄
keypress(); : 키를 눌렀을 때
mouseenter(); : 마우스가 요소 안으로 들어왔을 때
mouseleave(); : 마우스가 요소 박으로 나갔을 떄
mousemove(); : 마우스가 움직일 떄
resize(); : 윈도우 창의 사이즈가 변할 때
submit(); : form에서 submit 버튼을 눌렀을 떄
reset(); : form에서 reset 버튼을 눌렀을 떄
toggle(); : 클릭할 때마다 순차적으로 번갈아 가면서 실행
hover(); : 마우스가 올려졌을 때와 벗어났을 때 각각의 함수를 실행
change(); : 값이 변경되었을 때
jquery
$가 붙어있는 변수 → jquery 결과 집합을 담고있는 변수 , jquery를 이용해서 조작할 수 있다.
setInterval(처리할 함수, 지연시간)
처리할 함수를 반복적으로 실행시켜준다.
설정된 지연시간이 지나면 자동으로 함수의 실행을 반복한다.
setTimeout(처리할 함수, 지연시간)
설정된 시연시간이 경과된 후에 함수를 딱 한번만 실행한다.
clearInterval()
일정시간마다 반복되는 함수의 실행을 중지한다.
$(target).appendTo(html태그); ⬌ $(html).appendTo(“target”);
preventDefault() 기본 발생 이벤트를 막는다.
stopPropagation() 사용자 정의 발생 이벤트를 막는다.
'프론트엔드' 카테고리의 다른 글
| CSS 선택자 (0) | 2018.09.04 |
|---|---|
| xml과 html 차이점 (0) | 2018.09.03 |
| jquery mobile (0) | 2018.08.31 |
| zen coding (0) | 2018.08.30 |
| javascript 기능 (0) | 2018.08.28 |
