>  기사  >  웹 프론트엔드  >  순회: jquery $().each 및 $.each()

순회: jquery $().each 및 $.each()

巴扎黑
巴扎黑원래의
2017-07-09 11:08:061037검색

jquery에서는 traverse objectarrays에서 $().each와 $.each()라는 두 가지 메서드를 자주 사용합니다.

$().each는 DOM 처리에 자주 사용됩니다. 페이지에 확인란 유형의 여러 입력 태그 가 있는 경우 $().each를 사용하여 여러 수표책을 처리합니다. 예:

<br>

<span style="font-family: 宋体;">$(“input[name=’ch’]”).each(<span style="color: #0000ff;">function</span><span style="color: #000000;">(i){</span><span style="color: #0000ff;">if</span>($(<span style="color: #0000ff;">this</span>).attr(‘checked’)==<span style="color: #0000ff;">true</span><span style="color: #000000;">)
{</span><span style="color: #008000;">//</span><span style="color: #008000;">一些操作代码</span><span style="color: #000000;">}<br><a href="http://www.php.cn/code/8530.html" target="_blank">回调函数</a>是可以传递参数,i就为遍历的索引。<br></span></span>

일반적으로 $.each를 사용하여 배열을 탐색합니다. 처리 예:

<br>

<br>

$.each([{name:"limeng",email:"xfjylimeng"},{name:"hehe",email:"xfjylimeng"}],function(i , n)<br>{<br>alert("인덱스: "+i+" 해당 값: "+n.name);<br>});

매개변수 i는 순회 인덱스 값이고, n은 현재 순회 개체입니다.

<br>var arr1 = [ "one", "two", "three", "four", "five" ];<br>$.each(arr1, function(){<br>alert(this);<br>});<br>输出:one   two  three  four   five<br><br>var arr2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]<br>$.each(arr2, function(i, item){<br>alert(item[0]);<br>});<br>输出:1   4   7<br><br>var obj = { one:1, two:2, three:3, four:4, five:5 };<br>$.each(obj, function(key, val) {<br>alert(obj[key]);<br>});<br>输出:1   2  3  4  5<br>

사실 jQuery의 Each 메소드는 js의 call 메소드를 통해 구현됩니다.

다음은 통화방법에 대한 간략한 소개입니다. <br>호출 방법이 아주 훌륭합니다. 사실 공식적인 설명은 "객체의 메소드를 호출하고 현재 객체를 다른 객체로 대체한다"입니다. 인터넷에서 더 많은 설명은 컨텍스트 환경을 변경한다는 것입니다. 이 포인터의 컨텍스트를 변경합니다. <br>call([thisObj[,arg1[, arg2[, [,.argN]]]]])

Parameters<br>thisObj<br>선택 사항입니다. 현재 객체로 사용될 객체입니다. <br>arg1, arg2, , argN<br>선택 사항. 일련의 메소드 매개변수가 전달됩니다.

설명<br> 호출 메서드를 사용하면 다른 개체 대신 메서드를 호출할 수 있습니다. call 메소드는 함수의 객체 컨텍스트를 초기 컨텍스트에서 thisObj가 지정한 새 객체로 변경합니다.

인터넷에서 아주 고전적인 예를 인용

Js 코드

<br>

function add(a,b){
alert(a+b);}<br>function sub(a,b){
alert(a-b);}<br>add.call(sub,3,1);

add를 사용하여 하위를 대체하고, add.call(sub,3,1) == add(3,1)이므로 실행 결과는 다음과 같습니다. Alert(4);<br>참고: js의 함수는 실제로 개체이며 함수 이름은 Function 개체에 대한 참조입니다.

다음은 jQuery의 각 메소드의 몇 가지 일반적인 용도입니다.

Js code<br>var arr = [ “one”, “two”, “3”, “four”]; <br>$.each(arr, function(){<br>alert(this);<br>});<br>//위 각각의 출력 결과는 다음과 같습니다: one, two, three, four

var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]<br>$.each(arr1, function(i, item){<br>alert(item[0]);<br>});<br>//其实arr1为一个二维数组,item相当于取每一个一维数组<br>//item[0]相对于取每一个一维数组里的第一个值<br>//所以上面这个each输出分别为:1   4   7

var obj = { one:1, two:2, three:3, four:4};<br>$.each(obj, function(key, val) {<br>alert(obj[key]);<br>});<br>//这个each就有更厉害了,能循环每一个属性<br>//输出结果为:1   2  3  4

 

jQuery each源码

 

<br>

each: function( obj, callback ) {        var length, i = 0;        if ( isArrayLike( obj ) ) {
            length = obj.length;            for ( ; i < length; i++ ) {                if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {                    break;
                }
            }
        } else {            for ( i in obj ) {                if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {                    break;
                }
            }
        }        return obj;
    }

 

위 내용은 순회: jquery $().each 및 $.each()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.