一些常用且实用的原生JavaScript函数


Posted in Javascript onSeptember 08, 2010

css及html方面的技巧总结,点此前往: 前端开发中一些常用技巧总结, 你还可以前往兰芝博客, 查看由淘宝UED整理的前端tips: http://www.12sui.cn/category/css/.
1. document.getElementById的简写: https://3water.com/article/24762.htm;
2. getElementsByTagName的简写方式: https://3water.com/article/24026.htm;
3. 原生JavaScript中获取元素索引的函数: https://3water.com/article/24763.htm;
4. 替代window.onload,可多次调用的加载函数:

function iLoad(func) { 
var oLoad=window.onload; 
if(typeof window.onload!='function'){ 
window.onload=func; 
}else{ 
window.onload=function(){ 
oLoad(); 
func(); 
} 
} 
}

5. 获取下一个元素节点:
function nextElem(node){ 
if(node.nodeType==1) return node; 
if(node.nextSibling) return nextElem(node.nextSibling); 
return null; 
}

6. 获取上一个元素节点(此函数须调用第五条中的函数):
function prevElem(node){ 
if(node.nodeType==1){ 
return node; 
}else if(node.previousSibling){ 
return nextElem(node.previousSibling); 
}else{ 
return null; 
} 
}

7. 原生JavaScript中有insertBefore方法,可惜却没有insertAfter方法,怎么办?用如下函数实现:
function insertAfter(newChild,refChild){ 
var parElem=refChild.parentNode; 
if(parElem.lastChild==refChild){ 
refChild.appendChild(newChild); 
}else{ 
parElem.insertBefore(newChild,refChild.nextSibling); 
} 
}

8. 为元素添加样式[记住是添加不是替换,相当于jQuery中的addClass(value)]:
function addClass(elem,value){ 
if(!elem.className){ 
elem.className=value; 
}else{ 
var oValue=elem.className; 
oValue+=" "; 
oValue+=value; 
elem.className=oValue; 
} 
}

9. 获取元素的样式:
function getStyle(id,stylename){ 
var elem=$(id); 
var realStyle=null; 
if(elem.currentStyle){ 
realStyle=elem.currentStyle[stylename]; 
}else if(window.getComputedStyle){ 
realStyle=window.getComputedStyle(elem,null)[stylename]; 
} 
return realStyle; 
}

10. 兼容事件绑定:
function addEventSamp(obj,evt,fn){ 
if (obj.addEventListener) { 
obj.addEventListener(evt, fn, false); 
}else if(obj.attachEvent){ 
obj.attachEvent('on'+evt,fn); 
} 
}

11. 移除事件
function removeEventSamp(obj,evt,fn){ 
if(obj.removeEventListener){ 
obj.removeEventListener(evt,fn,false); 
}else if(obj.detachEvent){ 
obj.detachEvent('on'+evt,fn); 
} 
}

12. 检测样式
function hasClass(element, className){ 
var reg = new RegExp('(\\s|^)' + className + '(\\s|$)'); 
return element.className.match(reg); 
}

13. 删除样式
function removeClass(element, className){ 
if (hasClass(element, className)) { 
var reg = new RegExp('(\\s|^)' + className + '(\\s|$)'); 
element.className = element.className.replace(reg, ' '); 
} 
}

原文发布于Mr.Think的博客: http://mrthink.net/javascript-common-function-tip/

$()

function $() { 
var elements = []; 
for (var i = 0; i < arguments.length; i++) { 
var element = arguments[i]; 
if (typeof element == 'string') 
element = document.getElementById(element); 
if (arguments.length == 1) 
return element; 
elements.push(element); 
} 
return elements; 
}

toggle()

用来显示或隐藏一个DOM元素。

function toggle(obj) { 
var el = document.getElementById(obj); 
el.style.display=(el.style.display !="none"?"none":"") 
}
Javascript 相关文章推荐
JavaScript 小型打飞机游戏实现原理说明
Oct 28 Javascript
javascript继承之为什么要继承
Nov 10 Javascript
jQuery中unwrap()方法用法实例
Jan 16 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
Jun 24 Javascript
Jquery数字上下滚动动态切换插件
Aug 08 Javascript
angular框架实现全选与单选chekbox的自定义
Jul 06 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
Jun 19 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 Javascript
react实现antd线上主题动态切换功能
Aug 12 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
Feb 23 Javascript
浅析TypeScript 命名空间
Mar 19 Javascript
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
js location.replace与location.reload的区别
Sep 08 #Javascript
js中匿名函数的N种写法
Sep 08 #Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
Sep 08 #Javascript
javascript循环变量注册dom事件 之强大的闭包
Sep 08 #Javascript
Javascript的一种模块模式
Sep 08 #Javascript
jQeury淡入淡出需要注意的问题
Sep 08 #Javascript
jQuery之浮动窗口实现代码(两种方法)
Sep 08 #Javascript
You might like
php的header和asp中的redirect比较
2006/10/09 PHP
linux php mysql数据库备份实现代码
2009/03/10 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
php轻松实现文件上传功能
2016/03/03 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
javascript实现yield的方法
2013/11/06 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
python定时执行指定函数的方法
2015/05/27 Python
Python的多态性实例分析
2015/07/07 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Python3 操作符重载方法示例
2017/11/23 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
利用python绘制正态分布曲线
2021/01/04 Python
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
十八届三中全会个人学习材料
2014/02/13 职场文书
绿色环保标语
2014/06/12 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
文明倡议书
2015/01/19 职场文书
婚姻出轨保证书
2015/05/08 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
详解在OpenCV中如何使用图像像素
2022/03/03 Python