zoukankan      html  css  js  c++  java
  • jQuery使用(十一):jQuery实例遍历与索引

    • each()
    • children()
    • index()

     一、jQuery实例遍历方法each()

     jQuery实例上的each()方法规定要运行的函数,并且给函数传入两个参数:index,element。这个方法本身应用非常的简单,所以要来点不简单的东西,请看以下代码:

    <ul>
        <li></li>
        <li></li>
        <li></li>
    </ul>
    //js
    //需求一是将每个li的索引值作为文本添加给对应的li
    //需求二是将每个li的所以加上“demo”添加给对应的li作为类名
    //思路一:
    $("li").text(function(){
        //循环获取每个li添加文本
    }).addClass(function(){
        //循环获取每个li添加类名
    });

    思路一的解决方案循环了两次,从上面的需求来看应该是具备一次循环即可解决这两个需求的方案:

    $("li").each(function(index,ele){
        $(ele)
            .text(index)
                .addClass('demo' + index);
    });

     二、jQuery实例方法children()

     children方法用来获取元素的直接子元素,这个非常的简单,来个叫demo就好了。

    <p>
        <span></span>
        <i></i>
        <span></span>
        <i></i>
        <span></span>
        <li></li>
    </p>
    //js
    //需求是给p元素下的每个子元素添加文本是:tagName- + index
    $("p").children().each(function(index, el) {
        if(el.nodeName == "I"){
            $(el).text("i-" + index);
        }else{
            $(el).text("span-" + index);
        }
    });

     三、jQuery实例方法index()

     index获取DOM在jQuery对象集合中的索引,非常的简单,但是可以传入参数才是真正的高校操作,比如在上面的HTML结构中,要获取p元素内span或者i是第几个:

    $("p").on("click",function(e){
        var par = $(e.target).parent();
        if(e.target.nodeName == "SPAN"){
            alert(par.children('span').index($(e.target)));
        }else if(e.target.nodeName == "I"){
            alert(par.children('i').index($(e.target)));
        }
    });
  • 相关阅读:
    50个好用的前端框架,千万收好以留备用!
    嫦娥五号顺利升空,NASA、欧洲航天局回应
    【电脑故障排查】第1章 BIOS和主板故障
    我的老博客——我在chinaunix的家
    Linux操作系统(第二版)(RHEL 8/CentOS 8)
    Java Web整合开发(21) -- 宏观把握Hibernate
    3 远程仓库
    PHP设计模式-策略模式 转
    ubuntu server设置时区和更新时间
    ubuntu 重启 nginx 失败,* Restarting nginx nginx ...fail!
  • 原文地址:https://www.cnblogs.com/ZheOneAndOnly/p/10372120.html
Copyright © 2011-2022 走看看