JS常用方法(获取Class、获取元素样式、事件监听、cookie、ajax等)
var Util = {};
Util.byClass = function (oClass) {//全局获取
var tags = document.all ? document.all : document.getElementsByTagName('*');
var arr = [];
var reg = new RegExp("\\b" + oClass + "\\b");
for (var i = 0; i < tags.length; i++) {
if (reg.test(tags[i].className)) {
arr.push(tags[i]);
}
}
return arr;
};
Util.byClass2 = function (parentID, oClass) {//局部获取
var parent = document.getElementById(parentID);
var tags = parent.all ? parent.all : parent.getElementsByTagName('*');
var arr = [];
var reg = new RegExp("\\b" + oClass + "\\b");
for (var i = 0; i < tags.length; i++) {
if (reg.test(tags[i].className)) {
arr.push(tags[i]);
}
}
return arr;
};
Util.getStyle = function (obj, oStyle) {//获取元素的样式
if (obj.currentStyle) {
return obj.currentStyle[oStyle];
} else {
return getComputedStyle(obj, null)[oStyle];
}
};
Util.addEvent = function (obj, type , fn) {//添加事件监听
if (obj.addEventListener) {
obj.addEventListener(type, fn, false);
} else if (obj.attachEvent) {
obj.attachEvent('on' + type, fn);
} else {
obj['on' + type] = fn;
}
};
Util.removeEvent = function (obj, type, fn) {//删除事件监听
if (obj.removeEventListener) {
obj.removeEventListener(type, fn, false);
} else if (obj.detachEvent) {
obj.detachEvent('on' + type, fn);
} else {
obj['on' + type] = null;
}
};
Util.getOffsetTL = function (obj) {//获取obj到body左右的offset值
var l = 0,
t = 0;
while (obj) {
l = l + obj.offsetLeft + obj.clientLeft;
t = t + obj.offsetTop + obj.clientTop;
obj = obj.offsetParent;
}
return {left: l, top, t};
}
Util.setCookie = function (key, val, days) {
var dates = new Date();
dates.setDate(dates.getDate() + days);
document.cookie = key + '=' + escape(val) + '; expires=' + dates;
};
Util.getCookie = function (key) {
var arr1 = document.cookie.split('; ');
for (var i = 0; i < arr1.length; i++) {
var arr2 = arr1[i].split('=');
if (arr2[0] == key) {
return unescape(arr2[1]);
}
}
return false;
};
Util.removeCooie = function (key) {
Util.setCookie(key, 'aaa', -1);
};
Util.ajax = function (url, successFn, failureFn) {
var xhr = null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
xhr.open('get', url, true);
xhr.send(null);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 400) {
successFn(xhr.responsText);
} else {
if (failureFn) {
failureFn();
} else {
alert(xhr.status);
}
}
}
}
}
JS常用方法(获取Class、获取元素样式、事件监听、cookie、ajax等)的更多相关文章
- 使用addeventlistener为js动态创建的元素添加事件监听
点击li弹出内容,并且动态添加li之后有效 <button onclick="addFunction()">点我增加</button> <ul> ...
- React.js 小书 Lesson9 - 事件监听
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson9 转载请注明出处,保留原文链接和作者信息. 在 React.js 里面监听事件是很容易的事情 ...
- mvc-2事件监听
现代浏览器都支持的事件 click dbclick mouseover mousemove mouseout focus blur change(表单输入框特有) submit(表单特有) addEv ...
- Jquery系列:checkbox 获取值、选中、设置值、事件监听等操作
<div id="divId" class="divTable"> <div class="tableBody"> ...
- 前端基本知识(四):JS的异步模式:1、回调函数;2、事件监听;3、观察者模式;4、promise对象
JavaScript语言将任务的执行模式可以分成两种:同步(Synchronous)和异步(Asychronous). “同步模式”就是一个任务完成之后,后边跟着一个任务接着执行:程序的执行顺序和排列 ...
- js添加事件监听的方式与this
js添加事件监听与this js添加事件监听的方式与this 在标签中调用自定义函数 DOM0级事件处理程序 DOM2级事件处理程序 this 代表谁? js添加事件监听的方式与this <di ...
- Node.js 教程 05 - EventEmitter(事件监听/发射器 )
目录: 前言 Node.js事件驱动介绍 Node.js事件 注册并发射自定义Node.js事件 EventEmitter介绍 EventEmitter常用的API error事件 继承EventEm ...
- JS通用事件监听函数
JS通用事件监听函数 版本一 //把它全部封装到一个对象中 var obj={ readyEvent:function (fn){ if(fn==null){ fn=document; } var o ...
- js 事件监听封装
var eventUtil={//添加句柄 //element,节点 //type,事件类型 //handler,函数 addHandler:function(element,type,handler ...
随机推荐
- 转:简单的Mysql主从复制设置
步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后台启动mysql 1.3.修改root的密码 2.修改主服务器master: #vim /etc/my.cn ...
- Servlet,过滤器,监听器,拦截器的区别
1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码.做一些业务逻辑判断等.其工作原理是,只要你在web.xml ...
- JPA - hibernate 的各种常见用法
近期在做的项目使用的JPA,所以在此跟大家分享一下JPA的一些常见使用方法. JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的 ...
- 第一个远程javaweb项目测试全过程
2017-5-20,在这个奇特的日子,我不再满足于在本地测试javaweb,于是在上腾讯云买了第一个云服务器,由于是学生认证,所以一个月只要10块钱,还是要抢的,每天早上9点开抢 打开后,发现其实是一 ...
- liunx命令2
查看系统和bios硬件时间 [root@localhost ~]# date '+%y- %m- %d %H:%M' 17- 05- 15 02:57[root@localhost ~]# date ...
- 测试class
各种断言方法: assertEqual(a,b) a == b assertNotEqual(a,b) a != b assertTrue(x) x == True assertFalse(x) x ...
- More 3D Graphics (rgl) for Classification with Local Logistic Regression and Kernel Density Estimates (from The Elements of Statistical Learning)(转)
This post builds on a previous post, but can be read and understood independently. As part of my cou ...
- 在容器中利用Nginx-proxy实现多域名的自动反向代理、免费SSL证书
在个人的小项目或者测试环境中,配置反向代理显得十分繁琐,而借助 Nginx-proxy 的镜像,即使是小白,也能快速实现域名转发. 1.域名.IP自动转发 在开始之前,首先黑进了自家的路由器,将某个域 ...
- OpenGL教程(2)——第一个窗口
OpenGL环境终于配置好了,现在我们可以开始学习OpenGL了. 首先,创建一个.cpp文件,然后打上几行#include指令: #include <iostream> using st ...
- windows 配置 Scheme + Emacs 编程环境
软件下载列表: Emacs Racket (这里使用 Racket ,更加方便,便于后面配置 Emacs) 配置 安装好 Emacs 后,在 C:\Users\用户名\AppData\Roaming\ ...