• jQuery-4.动画篇---jQuery核心


    jQuery中each方法的应用

    jQuery中有个很重要的核心方法each,大部分jQuery方法在内部都会调用each,其主要的原因的就是jQuery的实例是一个元素合集

    如下:找到所有的div,并且都设置样式,css只是一个方法,所以内部会调用each处理这个div的合集,给每个div都设置style属性

    $('div').css(...)

    jQuery的大部分方法都是针元素合集的操作,所以jQuery会提供$(selector).each()来遍历jQuery对象

    .each只是处理jQuery对象的方法,jQuery还提供了一个通用的jQuery.each方法,用来处理对象和数组的遍历

    语法

    jQuery.each(array, callback )
    jQuery.each( object, callback )

    第一个参数传递的就是一个对象或者数组,第二个是回调函数

    $.each(["Aaron", "网"], function(index, value) {
       //index是索引,也就是数组的索引
       //value就是数组中的值了
    });

    each就是for循环方法的一个包装,内部就是通过for遍历数组与对象,通过回调函数返回内部迭代的一些参数,第一个参数是当前迭代成员在对象或数组中的索引值(从0开始计数),第二个参数是当前迭代成员(与this的引用相同

    jQuery.each()函数还会根据每次调用函数callback的返回值来决定后续动作。如果返回值为false,则停止循环(相当于普通循环中的break);如果返回其他任何值,均表示继续执行下一个循环。

    $.each(["Aaron", "网"], function(index, value) {
        return false; //停止迭代
    });

    jQuery方法可以很方便的遍历一个数据,不需要考虑这个数据是对象还是数组

    <script type="text/javascript">
        $("#exec").click(function() {
            var v = $("#animation").val();
            var $aaron = $("#aaron");
            $aaron.empty();
            if (v == "1") {

                // 遍历数组元素
                $.each(['Aaron', '慕课网'], function(i, item) {
                    $aaron.append("索引=" + i + "; 元素=" + item);
                });
            } else if (v == "2") {
                // 遍历对象属性
                $.each({
                    name: "张三",
                    age: 18
                }, function(property, value) {
                    $aaron.append("属性名=" + property + "; 属性值=" + value);
                });
            }
        });
        </script>

    jQuery中查找数组中的索引inArray

    在PHP有in_array()判断某个元素是否存在数组中,JavaScript却没有,但是jQuery封装了inArray()函数判断元素是否存在数组中。注意了:在ECMAScript5已经有数据的indexOf方法支持了,但是jQuery保持了版本向下兼容,所以封装了一个inArray方法

    jQuery.inArray()函数用于在数组中搜索指定的值,并返回其索引值。如果数组中不存在该值,则返回 -1。

    语法:

    jQuery.inArray( value, array ,[ fromIndex ] )
    

    用法非常简单,传递一个检测的目标值,然后传递原始的数组,可以通过fromIndex规定查找的起始值,默认数组是0开始

    例如:在数组中查找值是5的索引

    $.inArray(5,[1,2,3,4,5,6,7]) //返回对应的索引:4

    注意:

    如果要判断数组中是否存在指定值,你需要通过该函数的返回值不等于(或大于)-1来进行判断

     <script type="text/javascript">
        $("#exec").click(function() {
            var v = $("#animation").val();
            var $aaron = $("#aaron");
               $aaron.empty();
            if (v == "1") {

                var index = $.inArray('Aaron',['test','Aaron', 'array','慕课网']);

                $aaron.text('Aaron的索引是: '+ index)

            } else if (v == "2") {

                //指定索引开始的位置
                var index = $.inArray('a',['a','b','c','d','a','c'],2);

                $aaron.text('a的索引是: '+ index)
            }
        });
        </script>

    jQuery中去空格神器trim方法

    页面中,通过input可以获取用户的输入值,例如常见的登录信息的提交处理。用户的输入不一定是标准的,输入一段密码:'  1123456  ",注意了: 密码的前后会留空,这可能是用户的无心的行为,但是密码确实又没错,针对这样的行为,开发者应该要判断输入值的前后是否有空白符、换行符、制表符这样明显的无意义的输入值。

    jQuery.trim()函数用于去除字符串两端的空白字符

    这个函数很简单,没有多余的参数用法

    需要注意:

    • 移除字符串开始和结尾处的所有换行符,空格(包括连续的空格)和制表符(tab)
    • 如果这些空白字符在字符串中间时,它们将被保留,不会被移除

      <h2>trim方法</h2>

        未处理
        <input type="text" name="" id="results1" value=" 前后留空 " />
        <input id="exec1" type="button" value="点击执行"> <br />
        
        trim处理
        <input type="text" name="" id="results2" value=" 前后留空 " />
        <input id="exec2" type="button" value="点击执行">
        <script type="text/javascript">
        $("#exec1").click(function() {
            alert("值的长度:" + $("#results1").val().length)
        });

        $("#exec2").click(function() {
             alert("值的长度:" + $.trim($("#results2").val()).length)
        });
        </script>

    jQuery中DOM元素的获取get方法

    jQuery是一个合集对象,如果需要单独操作合集中的的某一个元素,可以通过.get()方法获取到

    以下有3个a元素结构:

    <a>1</a>
    <a>2</a>
    <a>3</a>

    通过jQuery获取所有的a元素合集$("a"),如果想进一步在合集中找到第二2个dom元素单独处理,可以通过get方法

    语法:

    .get( [index ] )

    注意2点

    1. get方法是获取的dom对象,也就是通过document.getElementById获取的对象
    2. get方法是从0开始索引

    所以第二个a元素的查找: $(a).get(1)

    负索引值参数

    get方法还可以从后往前索引,传递一个负索引值,注意的负值的索引起始值是-1

    同样是找到第二元素,可以传递 $(a).get(-2)

     <h2>get方法</h2>

        <div id="aaron">
            <a>1</a>
            <a>2</a>
            <a>3</a>
            <a>4</a>
            <a>5</a>
        </div>

        <select id="animation">
            <option value="1">get正数索引参数</option>
            <option value="2">get负数索引参数</option>
        </select>
        <input id="exec" type="button" value="点击执行">
        <script type="text/javascript">
        $("#exec").click(function() {
            var v = $("#animation").val();
            var $aaron = $("#aaron a");

            //通过get找到第二个a元素,并修改蓝色字体
            if (v == "1") {
               $aaron.get(1).style.color = "blue"
            } else if (v == "2") {
                //通过get找到最后一个a元素,并修改字体颜色
                $aaron.get(-1).style.color = "#8A2BE2"
            }
        });
        </script>

    jQuery中DOM元素的获取index方法

    get方法是通过已知的索引在合集中找到对应的元素。如果反过来,已知元素如何在合集中找到对应的索引呢?

    .index()方法,从匹配的元素中搜索给定元素的索引值,从0开始计数。

    语法:参数接受一个jQuery或者dom对象作为查找的条件

    .index()
    .index( selector )
    .index( element )
    • 如果不传递任何参数给 .index() 方法,则返回值就是jQuery对象中第一个元素相对于它同辈元素的位置
    • 如果在一组元素上调用 .index() ,并且参数是一个DOM元素或jQuery对象, .index() 返回值就是传入的元素相对于原先集合的位置
    • 如果参数是一个选择器, .index() 返回值就是原先元素相对于选择器匹配元素的位置。如果找不到匹配的元素,则 .index() 返回 -1

    简单来说:

    <ul>
        <a></a>
        <li id="test1">1</li>
        <li id="test2">2</li>
        <li id="test3">3</li>
    </ul>

    $("li").index() 没有传递参数,反正的结果是1,它的意思是返回同辈的排列循序,第一个li之前有a元素,同辈元素是a开始为0,所以li的开始索引是1

    如果要快速找到第二个li在列表中的索引,可以通过如下2种方式处理

    $("li").index(document.getElementById("test2")) //结果:1
    $("li").index($("#test2"))  //结果:1

     <style>
        a {
            font-size: 30px;
            font-weight: 900;
        }
        </style>
        <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
    </head>

    <body>
        <h2>index方法</h2>
        <ul>
            <a></a>
            <a></a>
            <li id="test1">1</li>
            <li id="test2">2</li>
            <li id="test3">3</li>
        </ul>
        <ul>
            <li id="test4">4</li>
            <li id="test5">5</li>
            <li id="test6">6</li>
        </ul>
        <select id="animation">
            <option value="1">index无参数</option>
            <option value="2">index传递dom</option>
            <option value="3">index传递jQuery对象</option>
        </select>
        <input id="exec" type="button" value="点击执行">
        <br />
        <br /> 索引结果:
        <span></span>
        <script type="text/javascript">
        $("#exec").click(function() {
            var v = $("#animation").val();

            var $span = $("span");
            $span.empty();

            if (v == "1") {
                //找到第一个li的同辈节点中的索引位置
                $span.text($("li").index())
            } else if (v == "2") {

                //通过传递dom查找
                $span.text($("li").index(document.getElementById("test5")))

            } else if (v == "3") {
                //通过传递jQuery对象查找
                $span.text($("li").index($("#test6")))

            }
        });
        </script>
  • 相关阅读:
    网络基本功(一)细说网络传输
    关于指针的理解
    百度地图定位,标注以及地图中心点问题
    ios 将彩色照片转化成黑白等几种类型
    在 iOS 应用中直接跳转到 AppStore 的方法
    ios中判断当前手机的网络状态
    NTFS 读写高手进阶 Windows 格式硬盘 Mac存文件 开启 ...(转载)
    tableviewcell 中使用autolayout自适应高度
    ios 3D Touch功能的实现
    一些牛人分享的ios技巧,保留着
  • 原文地址:https://www.cnblogs.com/oybb/p/7780346.html
Copyright © 2020-2023  润新知