jquery 의 each 사용 방법 상세 설명

2698 단어 each사용 방법
each()함 수 는 기본적으로 모든 프레임 워 크 가 제공 하 는 도구 류 함수 입 니 다.이 를 통 해 대상,배열 의 속성 값 을 옮 겨 다 니 며 처리 할 수 있 습 니 다.jQuery 와 jQuery 대상 은 모두 이 방법 을 실현 했다.jQuery 대상 에 대해 서 는 each 방법 을 간단하게 의뢰 했다.jQuery 대상 을 첫 번 째 매개 변수 로 jQuery 에 전달 하 는 each 방법 이다.다시 말 하면 jQuery 가 제공 하 는 each 방법 은 매개 변수 가 제공 하 는 대상 의 모든 하위 요 소 를 하나씩 호출 하 는 것 이다.jQuery 대상 이 제공 하 는 each 방법 은 jQuery 내부 의 하위 요 소 를 하나씩 호출 하 는 것 입 니 다.이 JQUERY 의 핵심 코드
 
jQuery.prototype.each=function( fn, args ) {
return jQuery.each( this, fn, args );
}
jQuery 가 제공 하 는 each 방법의 구체 적 인 실현 을 살 펴 보 자.jQuery.each(obj,fn,arg)이 방법 은 세 가지 매개 변수 가 있다.조작 대상 obj,조작 하 는 함수 fn,함수 의 매개 변수 args 이다.ojb 대상 에 따라 토론 합 시다.1.obj 대상 은 배열 each 방법 으로 배열 의 중성자 요소 에 대해 각각 fn 함수 호출 을 할 것 입 니 다.특정한 키 요 소 를 호출 한 결과 가 false 일 때 까지 입 니 다.즉,우 리 는 제공 하 는 fn 함수 에서 처리 하여 일정한 조건 을 만족 시 킨 후에 each 방법 호출 을 종료 할 수 있 습 니 다.each 방법 이 arg 인 자 를 제공 할 때 fn 함수 가 들 어 오 는 인 자 를 arg 로 호출 합 니 다.그렇지 않 으 면 하위 요소 색인 입 니 다.하위 요소 자체 2.obj 대상 은 배열 이 아 닙 니 다.이 방법 과 같은 가장 큰 차이 점 은 fn 방법 은 반환 값 을 고려 하지 않 고 진 행 됩 니 다.다시 말 하면 obj 대상 의 모든 속성 은 fn 방법 으로 호출 됩 니 다.fn 함수 가 false 로 돌아 가도.호출 된 매개 변 수 는 1 과 유사 합 니 다
 
jQuery.each=function( obj, fn, args ) {
if ( args ) {
if ( obj.length == undefined ){
for ( var i in obj )
fn.apply( obj, args );
}else{
for ( var i = 0, ol = obj.length; i < ol; i++ ) {
if ( fn.apply( obj, args ) === false )
break;
}
}
} else {
if ( obj.length == undefined ) {
for ( var i in obj )
fn.call( obj, i, obj );
}else{
for ( var i = 0, ol = obj.length, val = obj[0]; i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){}
}
}
return obj;
}
특히 주의해 야 할 것 은 each 방법 에서 fn 의 구체 적 인 호출 방법 은 간단 한 fn(i,val)또는 fn(args)을 사용 하 는 것 이 아니 라 fn.call(val,i,val)또는 fn.apply(object.args)형식 을 사용 하 는 것 입 니 다.이것 은 자신의 fn 실현 에서 this 지침 으로 배열 이나 대상 의 하위 요 소 를 직접 참조 할 수 있 음 을 의미 합 니 다.이런 방식 은 절대 다수의 jQuery 가 채택 한 실현 방식 이다.인 스 턴 스 를 통 해 설명 하 세 요.코드 를 먼저 보 세 요
 
$("#submit").click(function(){
try{
$('#leftTbl tr').each(function(i){
var emailInput = $("#email_"+(1+i));
if(!re.test(emailInput.val())){
alert(" email");
emailInput.focus();
throw emailInput;
}else{
email = emailInput.val();
}
});
}catch(e){
return false;
}
$("#pageform").submit();
});
throw 를 통 해 catch 를 통 해 이 루어 집 니 다.계산 기 를 만들어 서 마지막 까지 그의 값 을 판단 할 수 있 습 니 다!위의 코드 는 제목 과 아무런 관계 가 없 는 것 같 습 니 다.그러면 each 에서 break 를 어떻게 실현 하 는 지 는 continue 와 관련 이 있 습 니 다.

좋은 웹페이지 즐겨찾기