WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

jQuery遍历的几种方式

更新时间:2021-03-26 14:24 作者:佚名点击:
我们都知道js 的遍历方式为: for(初始化值;循环结束条件;步长) 例如:
 
 for (var i = 0; i < 3; i++) {//循环体}
1
jQuery遍历大概有如下几种用法:
 
1. jq对象.each(callback) 或 选择器.each(callback)
callback的返回值最后再做说明
 
1.1. 回调函数不带参数 (*注意:这种不带参数的回调只能获取到集合中的每一个元素对象,而不能获取到相应索引值,且只能通过this来获取对象)
    ->语法: jquery对象.each(function(){});
 
//html
<ul id="course">
    <li>js</li>
    <li>java</li>
    <li>C++</li>
    <li>jq</li>
</ul>
 
 
//实例
$("button").click(function(){
  $("#course li").each(function(){
    alert($(this).html());//jq获取方式
    alert(this.innerHTML);//js获取方式
  });
});
 
1.2. 回调函数带参数(*可以获取到index索引,且有两种获取元素对象的方式,如下)
    ->语法:jquery对象.each(function(index,element){});
 
index:就是元素在集合中的索引
element:就是集合中的每一个元素对象
this:集合中的每一个元素对象
//实例
  $("#course li").each(function (index, item) {
//3.1 获取 li对象 第一种方式 this
            //alert(this.innerHTML);//js获取
            //alert($(this).html());//jq获取
            /*3.2 获取 li对象 第二种方式
             在回调函数中定义参数 index(索引)item(元素对象)*/
           // alert(index+":"+item.innerHTML);
            alert(index+":"+$(item).html());
}
 
2. jQuery.each(object, [callback])
callback的返回值最后再做说明
 
2.1. 回调函数不带参数 (*与1.1效果类似,只能通过this来获取对象)
    ->语法:$.each(object,function(){});
 
$.each($("#course li"),function () {
              //alert($(this).html());//jq获取方式
      alert(this.innerHTML);//js获取方式
         });
 
2.2. 回调函数带参数(*可以获取到index索引,与1.2效果类似,写法不同,如下)
    ->语法:$.each(object,function(){index,item});
 
index:就是元素在集合中的索引
item:就是集合中的每一个元素对象
this:集合中的每一个元素对象
$.each($("#course li"),function (index,item) {
             //3.1 获取 li对象 第一种方式 this
           // alert(this.innerHTML);//js获取
           // alert($(this).html());//jq获取
            /*3.2 获取 li对象 第二种方式
             在回调函数中定义参数 index(索引)item(元素对象)*/
            //alert(index+":"+item.innerHTML);
            alert(index+":"+$(item).html());
         });
 
3. for…of: jquery 3.0 版本之后提供的方式
    ->语法:for(元素对象 of 容器对象)
 
   for (li of $("#course li")) {
            alert($(li).html());
        }
 
4. 回调函数返回值问题(涉及第一第二):
true:如果当前function返回为false,则结束循环(break)。
false:如果当前function返回为true,则结束本次循环,继续下次循环(continue)
例如:
 
  $.each($("#course li"), function (index, item) {
            //判断如果是java,则结束循环
            if ("java" == $(item).html()) {
                //如果当前function返回为false,则结束循环(break)。
                //如果返回为true,则结束本次循环,继续下次循环(continue)
                return false;
            }
            alert($(this).html());//此时前端页面只会弹出第一个值js
        });
        
  $.each($("#course li"), function (index, item) {
            //判断如果是java,则结束循环
            if ("java" == $(item).html()) {
                //如果当前function返回为false,则结束循环(break)。
                //如果返回为true,则结束本次循环,继续下次循环(continue)
                return true;
            }
            alert($(this).html());//此时前端页面会依次弹出js,C++jq,不会弹出java
        });
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容