[聚合文章] jQuery each()方法

jQuery 2017-08-22 8 阅读

今天在做练习的时候发现了一个坑。。

$(function () {
        // 定义一个数组
        var arr = [1, 2, 3, 4, 5];
        // 遍历数组
        arr.each(function (i, item) {
            alert(arr[i])
        })
    })

我的目的是想遍历整个数组,但是,控制台报了个is not a function;

然后,我想应该是arr是原生对象,没有转换成jq对象。

$(function () {
        var arr = [1, 2, 3, 4, 5];
        $arr = $(arr);
        $arr.each(function (i) {
            console.log($arr[i])
        })
    })

果然是这样,此时,控制台就可以打印出arr里的数据。

另外,我发现jQuery还提供了一种方法

$(function () {
        var arr = [1, 2, 3, 4, 5];
        $.each(arr, function (i) {
            console.log(arr[i])
        })
    })

原来,

$.each()与$(selector).each()不同, 后者专用于jquery对象的遍历, 前者可用于遍历任何的集合(无论是数组或对象),如果是数组,回调函数每次传入数组的索引和对应的值(值亦可以通过this 关键字获取,但javascript总会包装this 值作为一个对象—尽管是一个字符串或是一个数字),方法会返回被遍历对象的第一参数.

这句话是我在网上查到的,但我对此理解的并不深刻,感觉就是$.each()方法,将对象做了一次封装,直接转换成了jQuery对象。

以上是我自己的理解,可能有不对的地方,希望有大神能给些建议。

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。