《前端》jQuery-each遍历用法

定义和语法

each() 方法规定为每个匹配元素规定运行的函数。遍历一维数组、多维数组、DOM, JSON 等等,

提示:返回 false 可用于及早停止循环。

$(selector).each(function(index,val));

$.each(遍历主体, function (index, val) {    });//在纯js中,没有选择器,用到语法

function(index,val)--必选参数。为每个匹配元素规定运行的函数。

  • index - 选择器的 当前索引,
  • val- 当前的元素值(也可使用 "this" 选择器)

例子:

1、依次输出
  • 标签的内容。
  • 
    
    
    
    
    
    
    
    • Coffee
    • Milk
    • Soda

    这里$(this).text(),我之前没有写$,应是this属于dom对象,应该转成jQuery格式吧。

    2、each处理一维数组:

        var arr = ["aa", "bb", "cc"];$.each(arr, function (i, val) {alert(i);//=>0,1,2alert(val);// =>aa,bb,cc});

    3、each处理二维数组 

        var arr2 = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]$.each(arr2, function (i, item) {alert(i);//=>0,1,2alert(item);//=>['a','aa','aaa'],['b','bb','bbb'],['c','cc','ccc']});

    arr2为一个二维数组,item相当于取这二维数组中的每一个数组。item[0]相对于取每一个一维数组里的第一个值.
    alert(i)将输出为0,1,2,因为这二维数组含有3个数组元素

    4、each处理将二维数组每个值都取出来

        var arr = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]$.each(arr, function (i, item) {$.each(item, function (j, val) {alert(j);//=>0,1,2,0,1,2alert(val);//=>a,aa,aaa,b,bb,bbb,c,cc,ccc});});

    5、each处理json数据,这个each就有更厉害了,能循环每一个属性

        var obj = { one: 1, two: 2, three: 3 };$.each(obj, function (key, val) {alert(key);//=>one two threealert(val);//=>1,2,3});

    6、ecah处理dom元素,此处以一个input表单元素作为例子。

        $.each($("input:hidden"), function(i,val){  alert(val);alert(i);alert(val.name);alert(val.value);   });
     

    alert(val)将输出[object HTMLInputElement],因为它是一个表单元素。   

        alert(i)将输出为0,1,2,3 

        alert(val.name);将输出aaa,bbb,ccc,ddd,如果使用this.name将输出同样的结果

        alert(val.value);  将输出111,222,333,444,如果使用this.value将输出同样的结果

     

    其他的遍历函数:(筛选、查找和串联元素)

    函数描述
    .add()将元素添加到匹配元素的集合中。
    .andSelf()把堆栈中之前的元素集添加到当前集合中。
    .children()获得匹配元素集合中每个元素的所有子元素。
    .closest()从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素。
    .contents()获得匹配元素集合中每个元素的子元素,包括文本和注释节点。
    .each()对 jQuery 对象进行迭代,为每个匹配元素执行函数。
    .end()结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。
    .eq()将匹配元素集合缩减为位于指定索引的新元素。
    .filter()将匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素。
    .find()获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。
    .first()将匹配元素集合缩减为集合中的第一个元素。
    .has()将匹配元素集合缩减为包含特定元素的后代的集合。
    .is()根据选择器检查当前匹配元素集合,如果存在至少一个匹配元素,则返回 true。
    .last()将匹配元素集合缩减为集合中的最后一个元素。
    .map()把当前匹配集合中的每个元素传递给函数,产生包含返回值的新 jQuery 对象。
    .next()获得匹配元素集合中每个元素紧邻的同辈元素。
    .nextAll()获得匹配元素集合中每个元素之后的所有同辈元素,由选择器进行筛选(可选)。
    .nextUntil()获得每个元素之后所有的同辈元素,直到遇到匹配选择器的元素为止。
    .not()从匹配元素集合中删除元素。
    .offsetParent()获得用于定位的第一个父元素。
    .parent()获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。
    .parents()获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。
    .parentsUntil()获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。
    .prev()获得匹配元素集合中每个元素紧邻的前一个同辈元素,由选择器筛选(可选)。
    .prevAll()获得匹配元素集合中每个元素之前的所有同辈元素,由选择器进行筛选(可选)。
    .prevUntil()获得每个元素之前所有的同辈元素,直到遇到匹配选择器的元素为止。
    .siblings()获得匹配元素集合中所有元素的同辈元素,由选择器筛选(可选)。
    .slice()将匹配元素集合缩减为指定范围的子集。


    本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

    相关文章

    立即
    投稿

    微信公众账号

    微信扫一扫加关注

    返回
    顶部