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)));
        }
    });
  • 相关阅读:
    [noip2011d2t2]聪明的质检员 二分+前缀和优化
    [noip2016d2t2]蚯蚓
    KMP
    杨辉三角(二项式定理)&&组合数 【noip 2011/2016 d2t1】
    bzoj1615 [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
    [noip2015 pjt3]求和
    [周记]8.28~9.3
    [noip2011 d1t3] Mayan游戏
    react基础用法二(组件渲染)
    react基础用法一(在标签中渲染元素)
  • 原文地址:https://www.cnblogs.com/ZheOneAndOnly/p/10372120.html
Copyright © 2011-2022 走看看