第一百三十节,JavaScript,封装库--连缀

JavaScript,封装库--连缀

 

 

学习要点:

1.连缀介绍

2.改写库对象

 

本章我们重点来介绍,在调用库的时候,我们需要能够在前台调用的时候可以同时设置多个操作,比如设置CSS,设置innerHTML,设置click事件等等。那么本节课来讨论这个问题。

 

一.连缀介绍

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

$().getId('box').css('color', 'red').html('标题').click(function () {alert('a')});

连缀的好处,就是快速方便的设置节点的操作。

 

二.改写库对象

如果是实现操作连缀,那么我们就需要改写上一节课的对象写法:var Base = {},这种写法无法在它的原型中添加方法,所以需要使用函数式对象写法:

封装库代码

/***feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀**//** 每次调用$创建库对象,使其每次调用都是独立的对象**/
var $ = function () {return new feng_zhuang_ku();
};/***定义封装库构造函数,创建库对象**/
function feng_zhuang_ku () {/**对象说明:* this表示对象本身* 使用库,首先要  var $ = new feng_zhuang_ku();   首先要new创建对象* 再在创建的对象下调用方法或者属性* * 大纲:* 获取元素标签开始,行号18* 连缀-元素节点操作开始,行号64* * **//**------------------------------------------------获取元素标签开始--------------------------------------------**//**获取元素标签说明:* jie_dian属性,保存获取到的元素节点,返回数组,* huo_qu_id()方法,通过id获取元素标签,适用于获取单个节点,* huo_qu_name_zhi()方法,通过元素name值获取指定元素,适用于获取表单元素,* huo_qu_name()方法,通过标签名称获取相同标签名的元素,适用于获取多个相同元素节点,**//** jie_dian属性,创建数组,初始化,保存获取到的元素节点,返回数组**/this.jie_dian = [];/** huo_qu_id()方法,通过id获取元素标签,参数是id值,将获取到的元素对象添加到,jie_dian属性,适用于获取单个节点**/this.huo_qu_id = function (id) {this.jie_dian.push(document.getElementById(id));return this;};/** huo_qu_name_zhi()方法,通过元素name值获取指定元素,参数是元素name值,返回元素相同name值对象集合,* 循环元素集合,将每次循环到的元素对象添加到 jie_dian属性,适用于获取表单元素**/this.huo_qu_name_zhi = function (name) {var name_zhi = document.getElementsByName(name);for (var i = 0; i < name_zhi.length; i ++){this.jie_dian.push(name_zhi[i]);}return this;};/** huo_qu_name()方法,通过标签名称获取相同标签名的元素,参数是标签名称,返回对象集合* 循环元素集合,将每次循环到的元素对象添加到 jie_dian属性,适用于获取多个相同元素节点**/this.huo_qu_name = function (tag) {var name = document.getElementsByTagName(tag);for (var i = 0; i < name.length; i ++){this.jie_dian.push(name[i]);}return this;};/**------------------------------------------------获取元素标签结束--------------------------------------------**//**------------------------------------------------连缀-元素节点操作开始---------------------------------------**//**连缀-元素节点操作说明:* css()方法,给获取到的元素设置行内css样式* wen_ben()方法,给获取到的元素设置文本,参数是要设置的文本字符串* click()方法,给获取到的元素添加一个点击事件,参数是一个匿名函数(包含函数功能),**//** css()方法,给获取到的元素设置行内css样式,两个参数,参数1样式名称,参数2样式值* 循环jie_dian属性里的节点,将每次循环的节点添加css样式**/this.css = function (attr,value) {for (var i = 0; i < this.jie_dian.length; i ++){this.jie_dian[i].style[attr] = value;}return this;};/** wen_ben()方法,给获取到的元素设置文本,参数是要设置的文本字符串,* 循环jie_dian属性里的节点,将每次循环的节点添加元素文本**/this.wen_ben = function (str) {for (var i = 0; i < this.jie_dian.length; i ++){this.jie_dian[i].innerHTML = str;}return this;};/** click()方法,给获取到的元素添加一个点击事件,参数是一个匿名函数(包含函数功能),* 循环jie_dian属性里的节点,将每次循环的节点添加元素点击事件**/this.click = function (fu) {for (var i = 0; i < this.jie_dian.length; i ++){this.jie_dian[i].onclick = fu;}return this;};/**------------------------------------------------连缀-元素节点操作结束---------------------------------------**/
}

前台调用代码

//前台调用代码
window.onload = function (){$().huo_qu_name('div').css('background-color','#ffff3e');$().huo_qu_name('p').css('color','#ff2128').css('background-color','#b2bbff').wen_ben('改变').click(function () {alert('a');});
};

 

转载于:https://www.cnblogs.com/adc8868/p/6233599.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring3:类型安全依赖项注入

在从Spring跳到类型安全依赖注入之前&#xff0c;我想讨论一下我们之前所做的方式。 我们一直在借助Spring的Autowired注释按类型使用依赖项注入。 像这样的东西会注入Spring Bean。 Autowired private StudentDao studentDao; // Autowires by type. Injects the instance who…

userData IE

蛮讨厌IE的&#xff0c;因为他常常需要特别照顾&#xff0c;就像DOM Storage(sessionStorage和localStorage)只能支持IE8&#xff0c;对于以下的只能使用userData。 原理&#xff1a;通过在document元素后面附加一个专属的“DHTML行为”来实现客户端存储&#xff0c; var memor…

context元素大概解说

Context元素代表一个web应用&#xff0c;运行在某个特定的虚拟主机上。如Servlet Specification 2.2或以后版本中描述的那样&#xff0c;每个web应用基于一个Web Application Archive(WAR)文件&#xff0c;或者是一个目录&#xff0c;包含WAR文件解压后的内容。有关Web Applica…

全新的Play模块资料库

去年11月&#xff0c;我曾与Play框架的 Nicolas Leroux谈过创建模块存储库的问题。 他同意这将是一个好主意&#xff0c;但是时间不足使我无法开始。 在上周Google Play小组发生了暴风雨之后&#xff0c;我决定将其优先处理。 可以在几周内提供可工作的原型。 概述&#xff1a;…

Ubuntu 16.04 安装 VMware-Workstation-12

以前一直使用 Ubuntu Virtaulbox &#xff0c;最近测试了 VMware-Workstation-9,性能超过 Virtaulbox-4.2.x,下面是详细步骤:1 首先准备一个Ubuntu 系统 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04 LTS Release: 16.04 …

Linux的md64进程,在Linux上安装Elasticsearch Kibaba.md(示例代码)

在Linux上安装Elasticsearch KibabaKibana是一个开源为elasticsearch 引擎提供数据和数据分析1、下载安装切换到root账户&#xff0c;按顺序依次执行以下命令rpm包安装$wget -c https://artifacts.elastic.co/downloads/kibana/kibana-5.5.3-x86_64.rpm$sha1sum kibana-5.3.2-x…

SSH实战 · 唯唯乐购项目(中)

用户模块三&#xff1a;一级分类的查询创建一级分类表并导入基本数据CREATE TABLE category (cid int(11) NOT NULL AUTO_INCREMENT,cname varchar(255) DEFAULT NULL,PRIMARY KEY (cid)) ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8;建包及相应的类:com.weiwei.shoppi…

播放2 –模块,插件有什么区别?

关于Play 2模块和插件似乎有些混乱。 我想这是因为两者经常是同义词。 在Play&#xff08;两个版本-1和2&#xff09;中&#xff0c;存在明显的差异。 在本文中&#xff0c;我将介绍什么是插件&#xff0c;如何在Java和Scala中实现插件&#xff0c;以及如何从模块导入插件。 外…

Linux多线程贝叶斯建树教程,建树经验.doc

建树经验分子进化树构建及数据分析的简介mediocrebeing, rodger, lylover, klaus, oldfish, yzwpf一、引言开始动笔写这篇短文之前&#xff0c;我问自己&#xff0c;为什么要写这样的文章&#xff1f;写这样的文章有实际的意义吗&#xff1f;我希望能够解决什么样的问题&#x…

Android的IPC机制(一)——AIDL的使用

综述 IPC(interprocess communication)是指进程间通信&#xff0c;也就是在两个进程间进行数据交互。不同的操作系统都有他们自己的一套IPC机制。例如在Linux操作系统中可以通过管道、信号量、消息队列、内存共享、套接字等进行进程间通信。那么在Android系统中我们可以通过Bin…

python学习笔记(python介绍)

为什么要学python&#xff1f; python和shell的比较&#xff0c;和PHP、和JAVA比较 运维开发只是用到python的很小一部分 python在一些知名公司的应用&#xff1a; 谷歌&#xff1a;python的创始人原来在谷歌工作。 CIA&#xff1a;美国中情局网站用python开发的 NASA&#xff…

Netty:透明地使用SPDY和HTTP

大多数人已经从谷歌那里听说过SPDY&#xff0c;该协议被提议作为老化的HTTP协议的替代品。 Web服务器是浏览器正在缓慢地实现该协议&#xff0c;并且支持正在增长。 在最近的文章中&#xff0c;我已经写过SPDY的工作方式以及如何在Jetty中启用SPDY支持。 由于Netty&#xff08;…

selenium 等待页面加载完成

一、隐形加载等待&#xff1a; file:///C:/Users/leixiaoj/Desktop/test.html 该页面负责创建一个div <html> <head><title>Set Timeout</title><style>.red_box {background-color: red; width 20%; height:100px; border: none;}</style&…

linux nfsnobody用户,处理CentOS 5.5 x64 配置NFS服务过程中nfsnobody用户造成的问题

4、我们编译一下这个NFS的配置文件。[rootNFS /]# vi /etc/exports/share 192.168.60.0/24(rw,sync,all_squash,root_squash) (我们允许这个共享对192.168.60.0/24网段可读可写&#xff0c;且将所有访问者包括root的身份都改为nfsnobody)[rootNFS /]# /etc/init.d/nfs resta…

计算机语言

软件&#xff1a;是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。 系统软件 系统软件是各类操作系统&#xff0c;如windows、Linux、UNIX等&#xff0c;还包括操作系统的补丁程序及硬件驱动程序&#xf…

Apache Shiro第2部分–领域,数据库和PGP证书

这是致力于Apache Shiro的系列文章的第二部分。 我们从简单的不安全Web应用程序开始了上一部分 。 完成后&#xff0c;该应用程序具有基本的身份验证和授权。 用户可以登录和注销。 所有网页和按钮均已分配和实施访问权限。 授权和身份验证数据都已存储在静态配置文件中。 正如…

js中变量作用域的小理解

一&#xff1a;变量作用域 在js代码中每个变量都是有自己的作用域的&#xff0c;js中不像C语言有块级作用域的概念&#xff0c;取而代之的是函数作用域&#xff0c;看如下代码&#xff1a; var scope"global"; function init(){ alert(scope);var scope "local…

安卓linux开机画面,Android系统的开机画面显示过程分析(1)

好几个月都没有更新过博客了&#xff0c;从今天开始&#xff0c;老罗将尝试对Android系统的UI实现作一个系统的分析&#xff0c;也算是落实之前所作出的承诺。提到Android系统的UI&#xff0c;我们最先接触到的便是系统在启动过程中所出现的画面了。Android系统在启动的过程中&…

如果你的NavigationDrawer里面的Item没有响应,Drawer不能左滑关闭

如果你的NavigationDrawer里面的Item没有响应&#xff0c;Drawer不能左滑关闭&#xff0c;应该是因为你没有把主要内容放在DrawerLayout标签下的第一位。 The main content view (the FrameLayout above) must be the first child in the DrawerLayout because the XML order i…

JAXB和未映射的属性

JAXB&#xff08;JSR-222&#xff09;是例外配置&#xff0c;这意味着存在默认映射应用于域对象。 这意味着有时您需要显式排除字段/属性。 在本文中&#xff0c;我将讨论如何使用XmlTransient或XmlAccessorType&#xff08;XmlAccessType.NONE&#xff09;以及何时使用每个选项…