我的编程空间,编程开发者的网络收藏夹
学习永远不晚

实例详解jQuery的链式编程风格

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

实例详解jQuery的链式编程风格

链式编程的实现原理

jQuery可以让我们开发者一直使用点语法调用自身方法的原理,主要原因是jQuery内部利用了js的对象来实现。

在jQuery中,如果一直对同一个元素或元素的其他关系元素(兄弟元素,父子元素)进行操作,那么可以使用 .语法(点语法),一直写下去。


$("#box").css("background", "pink").css("font-size":"29px");
$("#box").siblings().css("background", "");

可以写成:


$("#box").css("background", "pink").siblings().css("background", "red");

实现链式编程jQuery选择器本身是一个jquery对象。jQuery内部利用this返回了自己本身。


    //js中,声明一个对象
       var obj = {  
         name:"姓名", 
        desc: function(){   
        console.log(this); // 打印当前自身对象  
        console.log(this.name); // 调用自身对象的属性   
        return this;  // 实现链式编程的原理,就是在调用方法后,方法本身返回对象。
},  
      read: function(){  
        console.log("hello!");    
        return this; 
    }}


jQuery的链式编程风格实例

首先本人通过一个案例来展示jQuery的链式编程风格。先写一个页面,展示一个列表,代码如下:


<body>
    <div>
        <ul class="menu">
            <li class="level1">
                <a href="#">水果</a>
                <ul class="level2">
                    <li><a href="#">苹果</a></li>
                    <li><a href="#">菠萝</a></li>
                    <li><a href="#">香瓜</a></li>
                </ul>
            </li>
            <li class="level1">
                <a href="#">主食</a>
                <ul class="level2">
                    <li><a href="#">面条</a></li>
                    <li><a href="#">馒头</a></li>
                    <li><a href="#">米饭</a></li>
                </ul>
            </li>
        </ul>
    </div>
</body>

<script type="text/javascript">
    $(function() {
        $(".level1 > a").click(function() {
            $(this).addClass("current").next().show().parent.siblings().children("a").removeClass("current").next().hide();
            return false;
        });
    });
</script>

代码执行后的效果如下图所示:

 

 上述代码的扩展效果就是通过jQuery的链式操作实现的,所有增加current类的操作、查询子元素的方法调用、动画方法的调用等都是对同一个元素进行的,所以在开始获取到一个jQuery对象后,后面的所有方法、属性的调用都通过 “.” 进行连续调用即可,这种模式就是链式操作。

为了增加代码的可读性和可维护性,我们将上面的链式代码格式的修改如下:


<script type="text/javascript">
    $(function() {
        $(".level1 > a").click(function() {
            // 给当前的元素添加current样式
            $(this).addClass("current")
                // 下一个元素显示
                .next().show()
                // 父元素的同辈元素的子元素a移除current样式
                .parent.siblings().children("a").removeClass("current")
                // 他们的下一个元素隐藏
                .next().hide();
            return false;
        });
    });
</script>

经过规范格式的调整后,增加了代码的易读性,更加方便后期的维护。

与此同时,我们对于同一个jQuery对象进行链式操作时,主要遵循下面3条格式规范。

(1)对于同一个对象不超过3个操作,可以直接写成一行,代码如下:


<script type="text/javascript">
    $(function() {
        $("li").show().unbind("click");
    });
</script>

(2)对于同一个对象的较多操作,建议每行写一个操作,代码如下:


<script type="text/javascript">
    $(function() {
        $(this).removeClass("mouseout")
            .addClass("mouseover")
            .stop()
            .fadeTo("fast", 0.5)
            .fadeTo("fast", 1)
            .unbind("click")
            .click(function() {
                .......
            });
    });
</script>

(3)对于多个对象的少量操作,可以每个对象写一行,如果涉及子元素,可以考虑适当的缩进。代码如下:


<script type="text/javascript">
    $(function() {
        $(this).addClass("highLight")
            .children("a").show().end()
            .siblings().removeClass("highLight")
            .children("a").hide();
    });
</script>

以上就是有关jQuery的链式编程风格。

总结

到此这篇关于jQuery链式编程风格的文章就介绍到这了,更多相关jQuery链式编程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

实例详解jQuery的链式编程风格

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

jQuery编程动画的基本方法示例详解

这篇文章主要为大家介绍了jQuery编程动画基本实现方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

Linux中的bz2压缩格式的实例详解

Linux中的bz2压缩格式的实例详解 一 语法bzip2 源文件 压缩为bz2格式,不保存源文件 bzip2 -k 源文件 压缩之后保留原文件 注意:bzip2命令不能压缩目录 bzip2 -d 压缩文件 解压缩,-k保留压缩文件 bun
2022-06-04

MySQL中查询json格式的字段实例详解

工作开发过程遇到一个需求:需要动态存储客户的姓名、手机号码、身份证、证件类型,意思是可能前端会传一个人或二个人或者三个人的信息是动态的不固定人数的四个字段(姓名、手机号码、身份证、证件类型)。 前端页面如下:我是使用List来接收前端传过来
2022-05-14

Android编程中的消息机制实例详解

本文实例讲述了Android编程中的消息机制。分享给大家供大家参考,具体如下: 在分析Android消息机制之前,我们先来看一段代码:public class MainActivity extends Activity implements
2022-06-06

Android编程之文件的读写实例详解

本文实例分析了Android编程之文件的读写方法。分享给大家供大家参考,具体如下: Android的文件读写与JavaSE的文件读写相同,都是使用IO流。而且Android使用的正是JavaSE的IO流,下面我们通过一个练习来学习Andro
2022-06-06

详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别

目录源码包编译实例下载编译工具,httpd以及其两个依赖包的源码包安装apr安装apr-util安装httpd源码编译报错信息处理init程序的三种风格init程序三种风格的特点源码包编译实例 下面通过编译安装httpd来深入理解源码包安装
2022-07-13

Android编程之菜单的实现方法实例详解

本文实例讲述了Android编程之菜单的实现方法。分享给大家供大家参考,具体如下: Options Menu 当用户按下menu button按钮时显示的菜单 Context Menu 当用户长久按住屏幕,被注册显示上下文菜单的视图时显示的
2022-06-06

Java编程思想对象的容纳实例详解

Java提供了容纳对象(或者对象的句柄)的多种方式,接下来我们具体看看都有哪些方式。有两方面的问题将数组与其他集合类型区分开来:效率和类型。对于Java来说,为保存和访问一系列对象(实际是对象的句柄)数组,最有效的方法莫过于数组。数组实际代
2023-05-31

Android编程设置全屏的方法实例详解

本文实例讲述了Android编程设置全屏的方法。分享给大家供大家参考,具体如下: 在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果。其一,通过在代码中可以设置,其二,通
2022-06-06

编程热搜

目录