第一百三十一节,JavaScript,封装库--CSS
JavaScript,封装库--CSS
将封装库里的方法,改成了原型添加方法
增加4个方法
tian_jia_class()方法,给获取到的元素添加class属性,参数是class属性值,可以连缀1
yi_chu_class()方法,给获取到的元素移除class属性,参数是要移除的class属性值,可以连缀2
she_zhi_link_css()方法,设置link连接、或style内嵌、中的CSS样式3
yi_chu_link_css()方法,移除link连接、或style内嵌、中的CSS样式4
封装库代码5
/**
*feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀
**/ /** 前台调用
* 每次调用$创建库对象,使其每次调用都是独立的对象
**/
var $ = function () {
return new feng_zhuang_ku();
}; /**
*定义封装库构造函数,类库
**/
function feng_zhuang_ku() {
/** jie_dian属性,创建数组,初始化,保存获取到的元素节点,返回数组
**/
this.jie_dian = [];
} /**对象说明:
* this表示对象本身
* 使用库,首先要 $() 创建对象
* 再在创建的对象下调用方法或者属性
*
* 大纲:
* 获取元素标签开始,行号18
* 元素节点操作开始,行号64
*
*
**/ /**------------------------------------------------获取元素标签开始--------------------------------------------**/
/**获取元素标签说明:
* jie_dian属性,保存获取到的元素节点,返回数组,
* huo_qu_id()方法,通过id获取元素标签,适用于获取单个节点,
* huo_qu_name_zhi()方法,通过元素name值获取指定元素,适用于获取表单元素,
* huo_qu_name()方法,通过标签名称获取相同标签名的元素,
* huo_qu_class()方法,获取相同class属性的节点,将获取到的节点添加到jie_dian属性
* guo_lv_jie_dian()方法,获取多个节点时,过滤jie_dian属性里的数组,就是过滤掉指定索引外的元素对象
**/ /** huo_qu_id()方法,通过id获取元素标签,参数是id值,将获取到的元素对象添加到,jie_dian属性,适用于获取单个节点
**/
feng_zhuang_ku.prototype.huo_qu_id = function (id) {
this.jie_dian.push(document.getElementById(id));
return this;
}; /** huo_qu_name_zhi()方法,通过元素name值获取指定元素,参数是元素name值,返回元素相同name值对象集合,
* 循环元素集合,将每次循环到的元素对象添加到 jie_dian属性,适用于获取表单元素
**/
feng_zhuang_ku.prototype.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()方法,通过标签名称获取相同标签名的元素,
* 两个参数:获取指定id下的相同标签元素,参数1标签名称,参数2指定区域id值
* 一个参数:获取页面所有相同标签元素,参数是标签名称
**/
feng_zhuang_ku.prototype.huo_qu_name = function (tag, idname) {
var node = null;
if (arguments.length == 2) {
node = document.getElementById(idname);
} else {
node = document;
}
var name = node.getElementsByTagName(tag);
for (var i = 0; i < name.length; i++) {
this.jie_dian.push(name[i]);
}
return this;
}; /** huo_qu_class()方法,获取相同class属性的节点,将获取到的节点添加到jie_dian属性
* 一个参数:获取整个页面指定的class属性节点,参数是class属性值
* 两个参数:获取指定id区域里的class属性节点,参数1是class属性值,参数2是指定区域的id值
**/
feng_zhuang_ku.prototype.huo_qu_class = function (name, idname) {
var node = null;
if (arguments.length == 2) {
node = document.getElementById(idname);
} else {
node = document;
}
var all = node.getElementsByTagName('*');
for (var i = 0; i < all.length; i++) {
if (all[i].className == name) {
this.jie_dian.push(all[i]);
}
}
return this;
}; /** guo_lv_jie_dian()方法,获取多个节点时,过滤jie_dian属性里的数组,就是过滤掉指定索引外的元素对象
* 参数是要保留jie_dian属性里的对象索引
**/
feng_zhuang_ku.prototype.guo_lv_jie_dian = function (num) {
var element = this.jie_dian[num];
this.jie_dian = [];
this.jie_dian[0] = element;
return this;
}; /**------------------------------------------------获取元素标签结束--------------------------------------------**/ /**------------------------------------------------元素节点操作开始--------------------------------------------**/
/**素节点操作说明:
* css()方法,给获取到的元素设置ss样式,或者获取css样式,
* wen_ben()方法,给获取到的元素设置文本,或者获取文本
* click()方法,给获取到的元素添加一个点击事件,参数是一个匿名函数(包含函数功能),
* tian_jia_class()方法,给获取到的元素添加class属性,参数是class属性值,可以连缀
* yi_chu_class()方法,给获取到的元素移除class属性,参数是要移除的class属性值,可以连缀
* she_zhi_link_css()方法,设置link连接、或style内嵌、中的CSS样式
* yi_chu_link_css()方法,移除link连接、或style内嵌、中的CSS样式
**/ /** css()方法,给获取到的元素设置ss样式,或者获取css样式,
* 两个参数:设置样式,参数1样式名称,参数2样式值,设置的行内样式
* 一个参数:获取样式,参数是样式名称,无法连缀,获取即可用获取行内也可以获取连接
**/
feng_zhuang_ku.prototype.css = function (attr, value) {
for (var i = 0; i < this.jie_dian.length; i++) {
if (arguments.length == 1) {
if (typeof window.getComputedStyle != 'undefined') { //w3c
return window.getComputedStyle(this.jie_dian[i], null)[attr];
} else if (typeof this.jie_dian[i].currentStyle != 'undefined') { //ie
return this.jie_dian[i].currentStyle[attr];
}
} else {
this.jie_dian[i].style[attr] = value;
}
}
return this;
}; /** wen_ben()方法,给获取到的元素设置文本,或者获取文本
* 有参:设置文本,参数是要设置的文本字符串。
* 无参:获取文本。无法连缀
**/
feng_zhuang_ku.prototype.wen_ben = function (str) {
for (var i = 0; i < this.jie_dian.length; i++) {
if (arguments.length == 0) {
return this.jie_dian[i].innerHTML;
}
this.jie_dian[i].innerHTML = str;
}
return this;
}; /** click()方法,给获取到的元素添加一个点击事件,参数是一个匿名函数(包含函数功能),
* 循环jie_dian属性里的节点,将每次循环的节点添加元素点击事件
**/
feng_zhuang_ku.prototype.click = function (fu) {
for (var i = 0; i < this.jie_dian.length; i++) {
this.jie_dian[i].onclick = fu;
}
return this;
}; /** tian_jia_class()方法,给获取到的元素添加class属性,参数是class属性值,可以连缀
**/
feng_zhuang_ku.prototype.tian_jia_class = function (classname) {
for (var i = 0; i < this.jie_dian.length; i++) {
if (!this.jie_dian[i].className.match(new RegExp('(\\s|^)' + classname + '(\\s|$)'))) {
this.jie_dian[i].className += ' ' + classname;
}
}
return this;
}; /** yi_chu_class()方法,给获取到的元素移除class属性,参数是要移除的class属性值,可以连缀
**/
feng_zhuang_ku.prototype.yi_chu_class = function (classname) {
for (var i = 0; i < this.jie_dian.length; i++) {
if (this.jie_dian[i].className.match(new RegExp('(\\s|^)' + classname + '(\\s|$)'))) {
this.jie_dian[i].className = this.jie_dian[i].className.replace(new RegExp('(\\s|^)' + classname + '(\\s|$)'), ' ');
}
}
return this;
}; /** she_zhi_link_css()方法,设置link连接、或style内嵌、中的CSS样式
* 在Web应用中,很少用到添加CSS规则和移除CSS规则,一般只用行内和Class;因为添加和删除原本的规则会破坏整个CSS的结构,所以使用需要非常小心。
* 直接在库对象下使用 如:$().she_zhi_link_css()
* 四个参数:
* 参数1,样式表索引位置,就是要操作的样式表位置索引,第几个样式表【数值】
* 参数2,要添加的选择器名称,【字符串】
* 参数3,要添加的样式名称和值,如:background:#ff2a16 【字符串】
* 参数4,将样式和选择器添加到样式表什么位置,【数值】
**/
feng_zhuang_ku.prototype.she_zhi_link_css = function (num, selectorText, cssText, position) {
var sheet = document.styleSheets[num];
if (typeof sheet.insertRule != 'undefined') {
sheet.insertRule(selectorText + "{" + cssText + "}", position);
} else if (typeof sheet.addRule != 'undefined') {
sheet.addRule(selectorText, cssText, position);
}
return this;
}; /** yi_chu_link_css()方法,移除link连接、或style内嵌、中的CSS样式
* 在Web应用中,很少用到添加CSS规则和移除CSS规则,一般只用行内和Class;因为添加和删除原本的规则会破坏整个CSS的结构,所以使用需要非常小心。
* 直接在库对象下使用
* 两个参数:
* 参数1,样式表索引位置,就是要操作的样式表位置索引,第几个样式表【数值】
* 参数2,删除样式表里的第几个选择器【数值】
**/
feng_zhuang_ku.prototype.yi_chu_link_css = function (num, position) {
var sheet = document.styleSheets[num];
if (typeof sheet.deleteRule != 'undefined') {
sheet.deleteRule(position);
} else if (typeof sheet.removeRule) {
sheet.removeRule(position);
}
return this;
};
/**------------------------------------------------元素节点操作结束--------------------------------------------**/
前台调用代码6
//前台调用代码
window.onload = function (){
/*
$().huo_qu_class('hj','a').guo_lv_jie_dian(0).css('color','#ff2a16');
$().huo_qu_class('hj','a').guo_lv_jie_dian(1).css('color','#ff2a16');
$().huo_qu_class('hj','a').guo_lv_jie_dian(2).css('color','#ff2a16');
$().huo_qu_class('hj','a').guo_lv_jie_dian(3).css('color','#ff2a16');
$().huo_qu_class('hj','a').wen_ben('重置');
$().huo_qu_class('hj','b').tian_jia_class('b').tian_jia_class('c').tian_jia_class('d').yi_chu_class('b').yi_chu_class('c').yi_chu_class('d');
*/
$().huo_qu_id('li').css('background-color','#ff2a16');
$().huo_qu_id('li2').css('background-color','#fff133');
};
第一百三十一节,JavaScript,封装库--CSS的更多相关文章
- 第一百六十一节,封装库--JavaScript,完整封装库文件
封装库--JavaScript,完整封装库文件 /** *feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀 **/ /** 前台调用 * 每次调用$()创建库对象, ...
- 第一百五十一节,封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全
封装库--JavaScript,表单验证--密码确认验证--回答验证--电子邮件验证加自动补全 效果图 html <div id="reg"> <h2 class ...
- 第一百五十节,封装库--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,预加载图片 首先了解一个Image对象,为图片对象 Image对象 var temp_img = new Image(); //创建一个临时区域的图片对象alert ...
- 第三百三十一节,web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令
第三百三十一节,web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令 Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --u ...
- 第一百三十节,JavaScript,封装库--连缀
JavaScript,封装库--连缀 学习要点: 1.连缀介绍 2.改写库对象 本章我们重点来介绍,在调用库的时候,我们需要能够在前台调用的时候可以同时设置多个操作,比如设置CSS,设置innerHT ...
- 第一百三十七节,JavaScript,封装库---修缮拖拽
JavaScript,封装库---修缮拖拽 修缮拖拽 /** tuo_zhuai()方法,将一个弹窗元素实现拖拽功能 * 注意:有参设置拖拽点区块,只有弹窗的这个拖拽点区块才能拖拽,无参整个弹窗可以拖 ...
- 第一百三十二节,JavaScript,封装库--下拉菜单
JavaScript,封装库--下拉菜单 封装库,增加了3个方法 shu_biao_yi_ru_yi_chu()方法,给元素设置鼠标移入移出事件,接收两个参数,参数是移入和移出时的执行函数(包含代码) ...
随机推荐
- 项目管理和版本跟踪——Redmine和SVN的结合
项目管理和版本跟踪——Redmine和SVN的结合 分类: Redmine2009-06-01 10:38 565人阅读 评论(0) 收藏 举报 svn项目管理tortoisesvn数据库railsr ...
- 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例
/”应用程序中的服务器错误. 由于检索用户的本地应用程序数据路径时出错,导致无法生成 SQL Server 的用户实例.请确保该用户在此计算机上有本地用户配置文件.该连接将关闭. 堆栈跟踪: [Sql ...
- Enumerable和yield
说说IEnumerable和yield IEnumerable数据类型是我比较喜欢的数据类型,特别是其强类型IEnumerable<T>更获得Linq的支持使得代码看起来更加优雅.整洁. ...
- C#对文件的操作
本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...
- 推荐系列:最小与最大[DP+余式定理]
最小与最大 [问题描述] 做过了乘积最大这道题,相信这道题也难不倒你. 已知一个数串,可以在适当的位置加入乘号(设加了k个,当然也可不加,即分成k+1个部分),设这k+1个部分的乘积(如果k=0,则乘 ...
- redis 中文存储乱码问题
在redis 中存储中文,读取会出现乱码(其实不是乱码,只是不是我们存的中文显示) redis> set test "我们" OK redis> get test &q ...
- 32位Windows7
32位Windows7 利用多余的不能识别的电脑内存 RAMDISK5.5教程 32位Windows7 利用多余的不能识别的电脑内存 RAMDISK5.5教程 环境:Windows7 32位 Ul ...
- Grub禁用UUID
这个属于一个个人喜好问题,我每次看到 df -h 的结果都很郁闷,根目录那一行设备是用uuid表示的,那一串字符真是够长的,看起来非常别扭,所以就自己修改了一下/etc/default/grub文件. ...
- 企业架构研究总结(38)——TOGAF架构能力框架之架构能力建设和架构治理
为了确保架构功能在企业中能够被成功地运用,企业需要通过建立适当的组织结构.流程.角色.责任和技能来实现其自身的企业架构能力,而这也正是TOGAF的架构能力框架(Architecture Capabil ...
- WPF专业编程指南 - DispatcherUnhandledException
WPF的Application类中有一个事件:DispatcherUnhandledException,在应用程序未对其中的异常加以处理的情况下发生,从而为应用程序把好最后的大门 namespace ...