① js 파일을 다운 받아서 사용
② http://code.jquery.com의 CDN 서비스를 사용
CDN
1. jQuery.com CDN : <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
2. 구글 CDN : <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
3. MS CDN : <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script>
4. CDNJS CDN : <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
5. jsDelivr CDN : <script src="https://cdn.jsdelivr.net/jquery/1.12.4/jquery.min.js"></script>
CDN(Contents Delivery Network) 이란?
이런 느낌..!
<body>
<h1 id="hello"></h1>
<!-- ./jquery-3.7.1.min.js -->
<script src="http://code.jQuery.com/jquery-3.7.1.min.js"></script>
<script>
function hello(){
var h1 = document.getElementById('hello');
alert(h1.tagName)
h1.innerHTML = 'Hello jQuery'
}
//javascript
/*
window.onload = function(){
hello();
}
*/
//jquery로 변환
jQuery(hello);
</script>
</body>
jQuery에서 제어할 대상에 접근하는 방법
Javascript에서 event.keyCode 를 하면 각 키보드에 해당하는 고유번호를 알 수 있다.
이 메소드가 jQuery에서는 event.which 으로 사용하게 된다.
.keydown, .keyup - 대소문자 구별X (A도 a도 65라고 나온다)
attr() / prop (많이쓰임)
jQuery 1.6버전 이전에는 attr() 만으로 가능하던 처리를 1.6 업데이트로 attr()과 prop() 으로 나뉘어졌다.
이전에는 attr() 하나로 많은 것을 처리하려다 보니 버그 및 문제가 발생하여 업데이트를 통해 불완전을 해소했다고 한다.
[형식]
var 변수명 = ("요소").attr("속성이름", "값");
$("요소").attr({
"속성1이름": "값",
"속성2이름": "값",
"속성3이름": "값"
});
[형식]
.prop("속성이름") → 속성값을 가져온다
.prop("속성이름", "값") → 속성값을 추가한다
$(function(){
console.log('attr = ' + $('a').attr('href')); // # (값을 가져오는듯)
console.log('attr = ' + $('a').prop('href')); // http://localhost:8081/jQuery/03_jQueryAttr/exam01.html#
var check = $('#check');
console.log('check = ' + check); // [object Object]
console.log('check = ' + check.prop('tagName')); // INPUT
console.log('attr = ' + check.attr('checked')); //checked
console.log('prop = ' + check.prop('checked')); // true
var check2 = document.querySelector('#check');
console.log('attr = ' + check2.getAttribute('checked')); // (원래) getAttribute -> attr (변형된거)
});
(2) 속성값 변경 및 추가하기
$("요소").css("속성이름", "값");
$("요소").css({
"속성1이름": "값",
"속성2이름": "값",
"속성3이름": "값"
});
(2) 클래스의 적용과 해제
("요소").removeClass("클래스이름");
(3) 클래스의 적용과 해제의 반복 처리
.not()
this / $(this)
=> this는 자바스크립트이고 $(this) 제이쿼리 문법이다.
=> this의 경우 해당 이벤트가 발생한 요소를 표시해주고
$(this)는 이벤트가 발생하면 발생한 태그를 Object로 보여준다는게 다른점이다.
=> this와 같은 데이터를 갖기 위해서는 $(this)[0] 을 사용하면 된다.
this === $(this)[0]
slideUp(), slideDown(), slideToggle()은 반드시 태그에 width, height 속성을 주어야 한다
그렇지 않으면 toggle()와 똑같은 동작을 한다
slideUp(speed) : speed값을 지정해서 슬라이드업 효과를 줄 수 있다
speed : "slow" or "fast" or milliseconds(1/1000초)
예) show(time [, function() {......}])
animate() 함수를 사용한 CSS 속성의 애니메이션 처리
① properties
요소의 탐색과 생성
(1) DOM의 구성요소
① Element : (= HTML 태그) 하나의 태그 요소를 의미한다.
② Attribute : (= HTML 태그 속성) 하나의 Element에 속해 있는 속성들을 의미한다.
③ Node : 하나의 Element에서 시작되는 트리 구조,
하나의 노드 안에는 여러개의 노드가 포함되어 있을 수 있다.
(2) DOM 트리 구조
(2) 가까운 조상 찾기
(3) 가까운 자식 찾기
비동적
$("요소").on("이벤트", function() {
... 이벤트 처리 ...
});
동적
$(document).on( "이벤트", "셀렉터", function() {
... 이벤트 처리 ...
});
$(document).on('click','.delete_btn', function()
읽어오고자 하는 대상의 내용이 단순한 text나 html 태그를 표현하며
읽어온 내용을 특정 요소에 출력하는 것만을 목적으로 할 경우 load() 함수를 사용해 코드를 축약할 수 있다.
$("CSS셀렉터").load(
"읽어올 대상의 URL"
[, function() { ...읽기에 성공한 후 실행될 함수...}]
);
$('#category2').load('../text/category-data.html ' + target, function(){
$(this).show();
});
});
예) "readme.html" 파일의 전체 내용 중에서 "#my"라는 id값을 갖는 요소만을 읽어올 경우
$("출력할 대상의 셀렉터").load("readme.html #my");