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');
});
};

第一百三十节,JavaScript,封装库--连缀的更多相关文章

  1. 第一百五十节,封装库--JavaScript,表单验证--密码验证

    封装库--JavaScript,表单验证--密码验证 效果图 html <div id="reg"> <h2 class="tuo">& ...

  2. 第一百六十节,封装库--JavaScript,ajax注册表单到数据库

    封装库--JavaScript,ajax注册表单到数据库 效果图 前台js var biaodan = $().xu_lie_biao_dan($('form').sh_jd()); //序列化获取表 ...

  3. 第一百六十一节,封装库--JavaScript,完整封装库文件

    封装库--JavaScript,完整封装库文件 /** *feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀 **/ /** 前台调用 * 每次调用$()创建库对象, ...

  4. 第一百五十八节,封装库--JavaScript,ajax说明

    封装库--JavaScript,ajax说明 封装库ajax()方法,ajax通讯方法,跨页面向动态页面发送或获取数据 /** ajax()方法,ajax通讯方法,跨页面向动态页面发送或获取数据 * ...

  5. 第一百五十七节,封装库--JavaScript,预加载图片

    封装库--JavaScript,预加载图片 首先了解一个Image对象,为图片对象 Image对象 var temp_img = new Image();   //创建一个临时区域的图片对象alert ...

  6. 第一百五十三节,封装库--JavaScript,表单验证--备注字数验证

    封装库--JavaScript,表单验证--备注字数验证 效果图 html <div id="reg"> <h2 class="tuo"> ...

  7. 第一百五十一节,封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全

    封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全 效果图 html <div id="reg"> <h2 class ...

  8. 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解

    第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...

  9. 第一百三十九节,JavaScript,封装库--CSS选择器

    JavaScript,封装库--修改元素选择器 就是将构造库函数修改成元素选择器,像css那样,输入#xxx .xxx xxx  (获取指定id下的指定class下的指定标签元素) 修改后的基础库 / ...

随机推荐

  1. Android 实现用户列表信息的功能,然后选择删除幻灯片删除功能

    在项目开发过程中.经常须要对用户列表的信息进行删除的操作.Android中经常使用的删除操作方式有两种 .一种就是类似微信的滑动出现删除button方式,另一种是通过CheckBox进行选择.然后通过 ...

  2. asp.net MVC2.0学习笔记

    asp.net;与mvc都是不可替代的:只是多一种选择:(解决了许多asp.net的许多缺点) model:充血模型.领域模型:很大程度的封装: 控制器:处理用户的交互,处理业务逻辑的调用,指定具体的 ...

  3. 字符串的使用(string,StringBuffer,StringBuilder)

    String中==与equals的区别:==比较字符串中的引用相等equals比较字符串中的内容相等(因为字符串有重写equals方法) string常用的方法 返回类型 方法 操作功能 Char c ...

  4. Android调用本机应用市场,实现应用评分功能

    原本以为应用评分是个很小的功能,但是一实现才发现真不是个小事.网上搜索资料没有找到答案,在很多开发群里面询问了很多人也没有解决问题,最后分析log,反编译看源码才终于有了些眉目,好吧,上代码: try ...

  5. Java类之间的关联关系(转载)

    Java类之间的关联关系 UML类图中的关系分为四种:泛化.依赖.关联.实现:关联关系又可以细化为聚合和组合. 一.泛化(Generalization) 泛化是父类和子类之间的关系,子类继承父类的所有 ...

  6. Effective C++(15) 在资源管理类中提供对原始资源的访问

      问题聚焦:     资源管理类是为了对抗资源泄露.     如果一些函数需要访问原始资源,资源管理类应该怎么做呢?        关于资源管理的概念总是显得那么的高大上,其实只是抽象一点. 下面用 ...

  7. c#中关于String、string,Object、object,Int32、int

    在java中,string和String有着明显的区别,后者就是前者的一个封装.在c#中,好像是通用的,大部分情况下,两者互换并不会产生问题.今天特意查了一下资料,了解了一下两者的关系. 简单的讲,S ...

  8. 【GitHub】在Mac上配置/使用Github

    以前一直听说过Github,但是自己一直不会用.最近不是太忙,于是想捣鼓捣鼓Github,没想到用了将近3个小时,才在Mac上配置成功. 首先简单介绍一下Git和Github 集中化的版本控制系统( ...

  9. oracle数据库对date字段类型存在空值进行排序的处理方法

    oracle数据库对date字段类型存在空值进行排序的处理方法      oracle 数据库,如果表中有一个字段类型为date,且该字段类型存在空值,并且需要排序,     解决方法为使用oracl ...

  10. TOGAF架构能力框架之架构委员会和架构合规性

    TOGAF架构能力框架之架构委员会和架构合规性 3. 架构委员会 正如前面所说,一个用来对架构治理策略的实现进行监督的跨组织的架构委员会是架构治理策略成功的主要要素之一.架构委员会应该能够代表所有主要 ...