第一百三十节,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');
});
};
第一百三十节,JavaScript,封装库--连缀的更多相关文章
- 第一百五十节,封装库--JavaScript,表单验证--密码验证
封装库--JavaScript,表单验证--密码验证 效果图 html <div id="reg"> <h2 class="tuo">& ...
- 第一百六十节,封装库--JavaScript,ajax注册表单到数据库
封装库--JavaScript,ajax注册表单到数据库 效果图 前台js var biaodan = $().xu_lie_biao_dan($('form').sh_jd()); //序列化获取表 ...
- 第一百六十一节,封装库--JavaScript,完整封装库文件
封装库--JavaScript,完整封装库文件 /** *feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀 **/ /** 前台调用 * 每次调用$()创建库对象, ...
- 第一百五十八节,封装库--JavaScript,ajax说明
封装库--JavaScript,ajax说明 封装库ajax()方法,ajax通讯方法,跨页面向动态页面发送或获取数据 /** ajax()方法,ajax通讯方法,跨页面向动态页面发送或获取数据 * ...
- 第一百五十七节,封装库--JavaScript,预加载图片
封装库--JavaScript,预加载图片 首先了解一个Image对象,为图片对象 Image对象 var temp_img = new Image(); //创建一个临时区域的图片对象alert ...
- 第一百五十三节,封装库--JavaScript,表单验证--备注字数验证
封装库--JavaScript,表单验证--备注字数验证 效果图 html <div id="reg"> <h2 class="tuo"> ...
- 第一百五十一节,封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全
封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全 效果图 html <div id="reg"> <h2 class ...
- 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解
第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...
- 第一百三十九节,JavaScript,封装库--CSS选择器
JavaScript,封装库--修改元素选择器 就是将构造库函数修改成元素选择器,像css那样,输入#xxx .xxx xxx (获取指定id下的指定class下的指定标签元素) 修改后的基础库 / ...
随机推荐
- 远程连接mysql速度慢的解决方法
最近在公司内部连mysql速度非常慢,一直还以为公司的网络有问题,后经查发现出现这种问题的主要原因是mysql默认开启了DNS的反向解析功能,连接时反向解析计算机名称时耗时严重,导致连接超慢.解决方法 ...
- 最初的ajax案例
----------------------原始的ajax: function guo() { var xhr if (XMLHttpRequest) { ...
- AppCompat v21 — Android 5.0之前版本设备的Material Design实现
博客原文地址:http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html,要想打 ...
- TCP应用
.Net 并行计算 ----并行任务 本文作为 .Net 并行计算 的第二篇 名词解释 任务并行是指一个或者多个独立的任务同时运行.任务并行类似于多线程或者ThreadPool 工作项.但是抽象的级别 ...
- c#中如何跨线程调用windows窗体控件?
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首先来看传统方法: public partial c ...
- 基于ffmpeg的C++播放器1
基于ffmpeg的C++播放器 (1) 2011年12月份的时候发了这篇博客 http://blog.csdn.net/qq316293804/article/details/7107049 ,博文最 ...
- [转] iOS ABI Function Call Guide
source: apple ARMv6 Function Calling Conventions When functions (routines) call other functions (sub ...
- winform程序中为无边框窗体手动添加窗体拖动代码
Point oldMousePoint;//记录开始移动窗口前鼠标点下箭头的位置 Point oldFormPoint;//记录开始移动窗口前窗体位置 // ...
- Linux系统小问题解决总结
[解决Ubuntu missing launcher and menu bar的问题] 按下ctrl + Alt + T打开终端: 输入以下命令: dconf reset -f /org/compiz ...
- ASP.NET4.5Web API及非同步程序开发系列3
ASP.NET4.5Web API及非同步程序开发系列(3) 接着上一篇博客的内容做一个补充,正好是一个大哥提出来的,我们看看一个有趣的现象. 请求相关问题的补充: 我们先在Controller中的定 ...