一些常用且实用的原生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 相关文章推荐
jQuery 技巧小结
Apr 02 Javascript
jQuery代码优化之基本事件
Nov 01 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
Sep 14 Javascript
FF IE浏览器修改标签透明度的方法
Jan 27 Javascript
JS跨域问题详解
Nov 25 Javascript
jQuery获取checkbox选中的值
Jan 28 Javascript
Bootstrap CSS布局之列表
Dec 15 Javascript
微信小程序 图片绝对定位(背景图片)
Apr 05 Javascript
Webpack执行命令参数详解
Jun 17 Javascript
Vue组件开发技巧总结
Mar 04 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
vue addRoutes实现动态权限路由菜单的示例
May 15 Javascript
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
追求程序速度,而不是编程的速度
2008/04/23 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
php实现httpclient类示例
2014/04/08 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
zookeeper python接口实例详解
2018/01/18 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
联强国际笔试题面试题
2013/07/10 面试题
C语言如何决定使用那种整数类型
2016/11/26 面试题
社区中秋节活动方案
2014/01/29 职场文书
竞赛口号大全
2014/06/16 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
技术员岗位职责范本
2015/04/11 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书