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. memcpy源代码

    7月22号去面试开发的职位,面试官先问我在以前项目中写了什么程序.我就巴拉巴拉的说了一堆写过的code,主要还是测试工具和自动化测试代码.之后让我写memcpy的函数,面试官还挺好的,帮我把函数原型都 ...

  2. Reporting Service部署之访问权限

    原文:Reporting Service部署之访问权限 SQL Server Reporting Services 并非专门设计用于 Internet 报表部署方案,但是您可以成功地将 Reporti ...

  3. 【SSRS】入门篇(一) -- 创建SSRS项目

    原文:[SSRS]入门篇(一) -- 创建SSRS项目 在本篇中,您将学习如何在 SQL Server Data Tools (SSDT) 中创建报表服务器项目. 报表服务器项目用于创建在报表服务器中 ...

  4. switch与java,c#的异同

    <script type="text/javascript" language="javascript"> //JavaScript控制语句基本和以 ...

  5. 打开Openstack dashboard出现Internal Server Error

    最近研究openstack,想把自己遇到的问题记录下来,同时如果有别的朋友也碰到同样问题的时候可以有个参考. 这次的问题是在openstack搭建好之后,dashboard本身是能用的,但是在某一天后 ...

  6. 浅谈DevExpress<五>:TreeList简单的美化——自定义单元格,加注释以及行序号

    今天就以昨天的列表为例,实现以下效果:预算大于110万的单元格突出显示,加上行序号以及注释,如下图:

  7. 多模块分布式系统的简单服务访问 - OSGI原形(.NET)

    多模块分布式系统的简单服务访问 - OSGI原形(.NET) 先描述一下本篇描述的适用场景(3台server, 各个模块分布在各个Server上,分布式模块互相依赖.交互的场景): 多个OSIG引擎交 ...

  8. 核心C#

    核心C# 内容提要: 声明变量:变量的初始化和作用域:C#的预定义数据类型:在C#程序中使用条件语句.循环和跳转语句指定执行流:枚举:名称空间: Main()方法:基本命令行C#编译器选项:使用Sys ...

  9. nginx-push-stream模块源码学习(二)——模块初始化

    本文重点介绍push stream模块的构成,至于nginx如何启动.维护该模块不会详细阐述,以后有时间会做详细阐述. 一.模块定义 1.1.  模块配置 通用nginx模块的配置struct有三种, ...

  10. .NET:国际化和本地化

    .NET:国际化和本地化 背景 国际化(i18n)和本地化(l10n)是高端程序的必备技术,可惜从业五年从没有尝试过,下一步准备做一个多用户的博客系统,想支持多语言,今天就学习了一下,写出来,希望大家 ...