>웹 프론트엔드 >JS 튜토리얼 >jQuery 구문 및 주의사항 요약_jquery

jQuery 구문 및 주의사항 요약_jquery

WBOY
WBOY원래의
2016-05-16 17:48:19853검색

1. 소개

1.1.개요

인터넷에서 WEB2.0과 Ajax 아이디어의 급속한 발전과 확산으로 몇몇 우수한 Js 프레임워크가 속속 등장했으며 그 중 더 유명한 것은 Prototype, YUI, jQuery, mootools, Bindows 및 국내 JSVM 프레임워크 등이 있는데, 이러한 JS 프레임워크를 우리 프로젝트에 적용함으로써 프로그래머는 복잡한 JS 애플리케이션을 설계하고 작성하는 것에서 벗어나 구현 세부 사항보다 기능적 요구 사항에 집중할 수 있습니다. , 이로써 프로젝트의 개발 속도가 향상됩니다.

jQuery는 프로토타입 이후 또 다른 뛰어난 Javascript 프레임워크입니다. 2006년 초 John Resig가 만든 이 제품은 JavaScript™ 및 Ajax 프로그래밍을 단순화하는 데 도움이 됩니다. 어떤 사람들은 프로토타입과 jQuery를 비교하기 위해 이 비유를 사용합니다. 프로토타입은 Java와 같고 jQuery는 Ruby와 같으며 간단하게 문서를 조작하고, 이벤트를 처리하고, 특수 효과를 구현하고 Ajax를 추가할 수 있는 간단하고 빠르며 유연한 JavaScript 프레임워크입니다. 웹페이지와의 상호작용.

다음과 같은 특징을 가지고 있습니다:

간결한 코드, 이해하기 쉬운 의미, 빠른 학습, 풍부한 문서.
jQuery는 경량 스크립트이며 코드가 매우 작습니다. JavaScript 패키지의 최신 버전은 약 20K에 불과합니다.
jQuery는 기본 xPath뿐만 아니라 CSS1-CSS3도 지원합니다.
jQuery는 크로스 브라우저이며 지원하는 브라우저에는 IE 6.0, FF 1.5, Safari 2.0, Opera 9.0이 포함됩니다.
jQuery의 다른 기능을 확장하는 것은 쉽습니다.
JS 코드와 HTML 코드를 완전히 분리할 수 있어 코딩, 유지 관리, 수정이 쉽습니다.
jQuery 자체에서 제공하는 일부 특수 효과 외에도 양식 유효성 검사, 탭 탐색, 드래그 앤 드롭 효과, 테이블 정렬, DataGrid 등 더 많은 기능을 플러그인을 통해 구현할 수 있습니다. 트리 메뉴, 이미지 특수 효과, Ajax 업로드 등.
jQuery는 디자이너, 개발자, 운이 좋은 사람들에게 적합하며, 상용 개발에도 적합하다고 할 수 있습니다. jQuery는 모든 JavaScript 애플리케이션에 적합하며 다양한 웹 애플리케이션에서 사용할 수 있습니다.

공식 사이트: http://jquery.com/ 중국어 사이트: http://jquery.org.cn/

1.2. 목적

이 문서를 살펴보면, jQuery에 대한 간단한 이해, JQuery와 다른 JS 프레임워크의 차이점을 이해하고 jQuery의 일반적인 구문, 사용 기술 및 주의사항을 숙지할 수 있습니다.


2. 사용방법
JQuery를 사용해야 하는 페이지에 JQuery의 js 파일을 도입합니다.
예:
소개된 후에는 jQuery에서 제공하는 구문을 웹 사이트 어디에서나 사용할 수 있습니다. 페이지.


3. 학습 튜토리얼 및 참고 자료
"jQuery 중국어 API 매뉴얼" 및 http://jquery.org.cn/visual/cn/을 참조하세요. index.xml
에서는 두 가지 좋은 jquery 튜토리얼을 권장합니다: "
jQuery 시작 튜토리얼
" 및 "jQuery를 사용하여 Ajax 개발 단순화"
4. 문법 요약 및 참고사항
1. 페이지 요소에 대한 참조

jquery의 $()를 통한 요소 참조에는 ID, 클래스, 요소 이름, 요소의 계층 관계 및 dom 또는 xpath 조건 및 기타가 포함됩니다. 메소드이고, 반환된 객체가 jquery 객체(컬렉션 객체)인 경우 dom으로 정의된 메소드를 직접 호출할 수 없습니다.


2. jQuery 객체와 dom 객체의 변환

jquery 객체만이 jquery에서 정의한 메소드를 사용할 수 있습니다. dom 객체와 jquery 객체 사이에는 차이점이 있습니다. 메서드를 호출할 때 dom 객체에서 작업하는지 jquery 객체에서 작업하는지 주의해야 합니다.
일반적인 DOM 객체는 일반적으로 $()를 통해 jquery 객체로 변환될 수 있습니다.
예: $(document.getElementById("msg"))는 jquery 객체이며 jquery 메서드를 사용할 수 있습니다.
jquery 객체 자체가 컬렉션이기 때문입니다. 따라서 jquery 객체를 dom 객체로 변환하려면 항목 중 하나를 가져와야 하며 일반적으로 인덱스를 통해 검색할 수 있습니다.
예: $("#msg")[0], $("div").eq(1)[0], $("div").get()[1], $("td " )[5] 이는 dom 개체이므로 dom에서 메서드를 사용할 수 있지만 더 이상 Jquery 메서드를 사용할 수 없습니다.
다음 작성 방법이 맞습니다.


$("#msg").html();
$("#msg")[0].innerHTML
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML


3. jQuery 컬렉션의 항목을 가져오는 방법

얻은 요소 컬렉션에 대해 항목(index로 지정)을 가져오려면 eq 또는 get(n)을 사용할 수 있습니다. 메서드 또는 인덱스 번호를 가져옵니다. eq는 jquery 객체를 반환하고 get(n) 및 index는 dom 요소 객체를 반환합니다. jquery 객체의 경우 jquery 메서드만 사용할 수 있고 dom 객체의 경우 dom 메서드만 사용할 수 있습니다. 예를 들어 세 번째
요소의 내용을 가져오려고 합니다. 두 가지 방법이 있습니다.
코드 복사 코드는 다음과 같습니다.

$("div ") .eq(2).html(); //jquery 객체의 메서드 호출
$("div").get(2).innerHTML; //dom 속성의 메서드 호출


4. 동일한 함수가 set과 get을 구현합니다

Jquery의 많은 메서드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

$("#msg").html() //html 콘텐츠를 반환합니다. ID가 msg 인 요소 노드의.
$("#msg").html("새 콘텐츠")
//"새 콘텐츠"를 html 문자열로 작성합니다. ID가 msg인 요소 노드의 콘텐츠, 페이지에 굵은 새 콘텐츠가 표시됩니다.

$("#msg").text() //ID가 다음과 같은 요소 노드의 텍스트 콘텐츠를 반환합니다. 메시지.
$("#msg").text("새 콘텐츠")
//"새 콘텐츠"를 일반 텍스트 문자열로 작성합니다. ID msg로 요소 노드 콘텐츠를 입력하면 페이지에 new content가 표시됩니다.

$("#msg").height(); id msg
$("#msg").height("300"); //id가 msg인 요소의 높이를 300으로 설정
$("#msg").width(); Return id id가 msg인 요소의 너비
$("#msg").width("300") //id가 msg인 요소의 너비를 300으로 설정

$ ("input"). val("); //폼 입력 상자의 값을 반환
$("input").val("test"); //테스트할 폼 입력 상자의 값을 설정합니다.

$ ("#msg").click(); //id가 msg인 요소에 대한 클릭 이벤트를 트리거합니다.
$("#msg").click(fn); id msg 함수 추가



마찬가지로 흐림, 초점, 선택, 제출 이벤트에 이 두 가지 호출 방법이 있을 수 있습니다

5. 처리 기능

jquery가 반환한 컬렉션 콘텐츠의 경우 각 개체를 반복해서 처리할 필요가 없으며 jquery는
컬렉션을 처리하는 데 매우 편리한 방법을 제공합니다. 두 가지 형식:

6. 필요한 기능 확장
코드 복사 코드는 다음과 같습니다:

$.extend({
min: function(a, b){return a < b?a:b; },
max: function( a, b){return a > b?a:b; }
}) //jquery에 대한 확장된 min 및 max 메서드

확장된 메서드를 사용합니다("$. 메소드 이름") :

alert("a=10,b=20,max=" $.max(10,20) ",min=" $.min(10,20));

7. 메소드 연속 작성 지원
연속 작성이란 jquery 객체에 대해 다양한 메소드를 연속적으로 호출할 수 있다는 의미입니다.

예:
코드 복사 코드는 다음과 같습니다.

$("p ").click(function(){alert($(this).html())})
.mouseover(function(){alert('마우스 오버 이벤트')})
. Each(function( i){this.style.color=['#f00','#0f0','#00f'][i]})

8. 운영 요소

주로 다음 방법을 포함합니다.
코드 복사 코드는 다음과 같습니다.

$("#msg").css("배경"); //요소의 배경색을 반환
$("#msg").css("배경", "#ccc") //설정 요소의 배경을 회색으로 설정
$("#msg").height(300) $("#msg").width("200"); 너비와 높이
$("#msg ").css({ color: "red", background: "blue" });//이름-값 쌍 형식으로 스타일 설정
$(" #msg").addClass("select"); / /select라는 클래스를 요소에 추가
$("#msg").removeClass("select"); //요소에 대해 select라는 클래스를 제거합니다.
$("#msg").toggleClass(" select"); //존재하는 경우(존재하지 않는 경우) select
라는 클래스를 삭제(추가)합니다.
9. 완벽한 이벤트 처리 기능

Jquery는 html 요소에 직접 이벤트를 작성할 필요 없이 jquery를 통해 직접 처리할 수 있는 다양한 이벤트 처리 방법을 제공합니다. 획득한 객체에 이벤트가 추가됩니다.
예:
코드 복사 코드는 다음과 같습니다.

$(" #msg") .click(function(){alert("good")}) //요소에 대한 클릭 이벤트를 추가했습니다
$("p").click(function(i){this.style.color =['# f00','#0f0','#00f'][i]}) //세 가지 다른 p 요소 클릭 이벤트에 대해 서로 다른 처리 설정

jQuery 정의 이벤트의 여러 사용자 정의:

(1) hover(fn1,fn2): 호버 이벤트(마우스가 객체 위로 이동하여 객체 밖으로 이동함)를 시뮬레이션하는 메서드입니다. 일치하는 요소 위로 마우스를 이동하면 첫 번째로 지정된 기능이 트리거됩니다. 마우스가 이 요소 밖으로 이동하면 지정된 두 번째 기능이 트리거됩니다.
코드 복사 코드는 다음과 같습니다.

//마우스를 마우스 위에 놓았을 때 테이블의 행은 클래스를 over로 설정하고 떠날 때 out으로 설정합니다.
$("tr").hover(function(){
$(this).addClass("over");
},
function(){
$(this) .addClass("out");
});

(2) Ready(fn): DOM이 로드되고 쿼리 및 조작 준비가 되었을 때 실행될 함수를 바인딩합니다.
코드 복사 코드는 다음과 같습니다.

$(document).ready(function( ){alert ("Load Success")})
//페이지가 로드되면 "Load Success" 메시지가 표시됩니다. onload 이벤트와 달리 onload에서는 페이지 콘텐츠(그림 등)를 로드해야 합니다. 페이지 HTML 코드가 다운로드되는 한 준비가 완료되는 동안 트리거됩니다. $(fn)


과 동일 (3)ggle(evenFn,oddFn): 클릭할 때마다 호출할 함수를 전환합니다. 일치하는 요소를 클릭하면 지정된 첫 번째 기능이 트리거되고 동일한 요소를 다시 클릭하면 지정된 두 번째 기능이 트리거됩니다. 이후 클릭할 때마다 이 두 함수에 대한 호출이 차례로 반복됩니다.
코드 복사 코드는 다음과 같습니다.

//클릭할 때마다 선택한 클래스의 순환 이름을 삭제합니다.
$("p").toggle(function(){
$(this).addClass("selected");
},function(){
$(this).removeClass( "selected");
});

(4) Trigger(eventtype): 일치하는 각 요소에 대해 특정 유형의 이벤트를 트리거합니다.
예:
$("p").trigger("click"); //모든 p 요소에 대해 클릭 이벤트를 트리거합니다.

(5) 바인딩(eventtype,fn), unbind( eventtype ): 이벤트 바인딩 및 바인딩 해제
일치하는 각 요소에서 바인딩된 이벤트를 제거(추가)합니다.
예:
코드 복사 코드는 다음과 같습니다.

$(" p").bind("click", function(){alert($(this).text()));});
//각 p 요소에 대한 클릭 이벤트 추가
$("p" ).unbind (); //모든 p 요소의 모든 이벤트 삭제
$("p").unbind("click") //모든 p 요소의 모든 클릭 이벤트 삭제



10. 여러 가지 실용적인 특수 효과 기능

toggle() 및 Slidetoggle() 메서드는 상태 전환 기능을 제공합니다.
예를 들어 전환() 메서드에는 hide() 및 show() 메서드가 포함됩니다.
slideToggle() 메서드에는 SlideDown() 및 SlideUp 메서드가 포함되어 있습니다.

11. 몇 가지 유용한 jQuery 메서드

$.browser: 브라우저 유형을 감지합니다. 유효한 매개변수: safari, Opera, msie, mozilla. 예를 들어 IE인지 확인하면 $.browser.isie이고, IE 브라우저라면 true를 반환합니다.
$.each(obj, fn): 일반 반복 함수. (루핑 대신) 객체와 배열을 대략적으로 반복하는 데 사용할 수 있습니다.
예:
$.each( [0,1,2], function(i, n){ Alert( "Item #" i ": " n ); })

동등 In:
코드 복사 코드는 다음과 같습니다.

var tempArr=[0,1 ,2]
for(var i=0;ialert("항목 번호" i ": " tempArr[i])
}


$.each( { name: "John", lang: "JS" }, function(i, n){ Alert( "Name: " i ", Value)와 같은 json 데이터를 처리할 수도 있습니다. : " n ); });

결과는 다음과 같습니다.
Name:name, Value:John
Name:lang, Value:JS
$.extend(target,prop1,propN ): 하나 이상의 다른 객체와 함께 객체 확장을 사용하고 확장된 객체를 반환합니다. jquery에서 구현한 상속 방식입니다.
예:
$.extend(settings, options);
//설정과 옵션을 병합하고 병합된 결과를 설정으로 반환합니다. 이는 옵션이 설정을 상속하고 상속된 결과를 설정에 저장하는 것과 같습니다. .
var settings = $.extend({}, defaults, options);
//기본값과 옵션을 병합하고 기본 콘텐츠를 덮어쓰지 않고 병합된 결과를 설정으로 반환합니다.
여러 매개변수를 가질 수 있습니다(여러 매개변수를 결합하여 반환)

$.map(array, fn): 배열 매핑. 변환 처리 후 배열의 항목을 새 배열로 저장하고 결과 새 배열을 반환합니다.
예:
var tempArr=$.map( [0,1,2], function(i){ return i 4; })
tempArr의 내용은 다음과 같습니다. [4,5, 6]
var tempArr=$.map( [0,1,2], function(i){ return i > 0 ? i 1 : null; })
tempArr의 내용은 다음과 같습니다. ,3]
$.merge(arr1,arr2): 두 배열을 병합하고 중복 항목을 삭제합니다.
예:
$.merge( [0,1,2], [2,3,4] ) //[0,1,2,3,4] 반환

$ . Trim(str): 문자열 양쪽 끝의 공백 문자를 제거합니다.
예:
$.trim("안녕하세요, 잘 지내세요?"); //"안녕하세요, 잘 지내세요?"를 반환합니다.

12. 클래스 라이브러리는 jQuery와 충돌합니다

요소를 가져오기 위해 $(id) 메서드를 직접 정의하는 경우가 많으며, 프로토타입과 같은 다른 js 라이브러리에서도 이러한 내용을 동시에 정의하면 $method가 정의됩니다. 시간이 지나면 변수 메서드 정의 충돌이 발생하므로 Jquery는 이 문제를 해결하기 위한 특별한 방법을 제공합니다.
jquery에서 jQuery.noConflect() 메서드를 사용하여 $ 변수 제어를 이를 구현하는 첫 번째 라이브러리 또는 이전에 사용자 정의된 $ 메서드로 전송합니다. 나중에 Jquery를 사용할 때는 $를 모두 jQuery로 바꾸면 됩니다. 예를 들어 원래 참조 개체 메서드 $("#msg")는 jQuery("#msg")로 변경됩니다.
예:
코드 복사 코드는 다음과 같습니다.

jQuery.noConflect ();
// jQuery 사용 시작
jQuery("div p").hide()
// 다른 라이브러리의 $()
$("content").style을 사용합니다. 표시 = '없음';
$("p").each(function(i){this.style.color=['#f00','#0f0','#00f'][i]})
/ / 인덱스가 각각 0, 1, 2인 p 요소에 대해 서로 다른 글꼴 색상을 설정합니다.
$("tr").each(function(i){this.style.groundColor=['#ccc','#fff'][i%2]})
//대체 행 달성 테이블 색상 변경 효과
$("p").click(function(){alert($(this).html())})
//각 p 요소에 대한 클릭 이벤트를 추가하고, 특정 p 요소를 사용하면 해당 콘텐츠
가 나타납니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.