【JavaScript 10—应用总结】:连缀

2024-08-25 22:18
文章标签 java 总结 应用 script 连缀

本文主要是介绍【JavaScript 10—应用总结】:连缀,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、总体概述

1.1,什么叫连缀

所谓连缀,最简单的理解就是一句话同时设置一个或多个节点两个或两个以上的操作。比如:

 

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;"></pre><pre name="code" class="javascript">$().getTagName("p").css("color","green").html("标题").click(function(){alert("a");}).css("backgroundColor","pink");</span></span>

说明:在这里,我们设置了节点的CSS属性,HTML标题,还有它的点击事件,这就是一个连缀的实例。

 

1.2,连缀的好处

快速方便的设置节点的操作。

1.3,个人理解

一说到连缀,作为我个人,我想到了以前用过的with...end with语句。比如说,我们在设置一个label标签的多个属性时,就可以使用这个语句,然后就不用每次声明属性设置的对象。在我理解,JS中所实现的连缀,与其有着异曲同工之妙。如果不实现连缀,作为上面代码中的效果,应该怎么实现呢?大概是这样的:

 

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">$().getTagName("p").css("color","green");$().getTagName("P").html("标题");$().getTagName("p").css("backgroundColor","pink"); $().getTagName("p").click(function(){alert("a");})</span></span>


虽然,都能实现想要的效果,但并不方便。就好像是别人问我们一个问题:她是一个什么样的人,用连缀的效果回答就是:她是一个又聪明、又漂亮、又富有的姑娘。如果不使用连缀的效果就是:她是一个聪明的姑娘;她是一个漂亮的姑娘;她是一个富有的姑娘。所以,由此可见,使用连缀,可以让我们更为快速、更为丰富的描述一个对象。

 

 

二、实现连缀

2.1,逻辑分析

首先作为获取到的节点是没有CSS方法,也没有单击事件的。那么要实现这些,我们需要将返回来的节点(每次返回的东西)作为一个基础对象,然后,在基础对象上添加我们需要的方法。

2.2,处理流程

首先,为了输入的快捷和便利,首先将基础对象Base设置为$符:

 

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">var $=function(){return new Base();
};</span></span>

然后,获取元素的节点(需要操作的节点,如body、div等):

 

 

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">function Base(){//创建一个数组,来保存获取的节点和节点数组this.elements=[];//获取ID节点this.getId=function(id){this.elements.push(document.getElementById(id));return this;};//获取元素节点this.getTagName=function(tag){var tags=document.getElementsByTagName(tag);for(var i=0;i<tags.length;i++){this.elements.push(tags[i]);};return this;};
}
</span></span>


说明:1,如果我们不创建一个数组来保存获取到的元素节点,那么我们就不能返回Base则个基础对象,从而添加方法实现连缀。而获取到的返回值是一个div对象。

 

2,在获取元素节点时,使用了循环,而不是像获取ID节点一样的处理。我们都知道ID作为唯一标识符是唯一的,但是元素节点就有很多,比如:

 <p>段落</p>
<p>段落</p>
<p>段落</p>

作为p的元素节点就有三个,如果像ID节点一样的处理,那么我们将只能设置第一个p元素节点。

最后,添加基础对象方法,实现连缀:

 

<span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:24px;">Base.prototype.css=function(attr,value){for(var i=0;i<this.elements.length;i++){this.elements[i].style[attr]=value;};return this;
}Base.prototype.html=function(str){for(var i=0;i<this.elements.length;i++){this.elements[i].innerHTML=str;};return this;
};Base.prototype.click=function(fn){for(var i=0;i<this.elements.length;i++){this.elements[i].onclick=fn;};return this;
};
</span></span>


注意:为了区分节点获取和实现连缀所添加的方法,将节点的获取和方法分开。这时需要在Base这个基础对象的原型上添加方法。

 

 

三、总结

实现连缀可以帮助我们节省很多的时间,刚开始的时候,觉得挺新的,偶然想到了with...end with语句,突然一下子就觉得亲切了很多很多。所以将知识联系起来,找到共鸣,就可以让自己轻松很多很多。

 

这篇关于【JavaScript 10—应用总结】:连缀的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106804

相关文章

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

java如何解压zip压缩包

《java如何解压zip压缩包》:本文主要介绍java如何解压zip压缩包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解压zip压缩包实例代码结果如下总结java解压zip压缩包坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2