一些常用且实用的原生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上传插件fineuploader上传文件使用方法(jquery图片上传插件)
Dec 05 Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 Javascript
jQuery中before()方法用法实例
Dec 25 Javascript
Javascript中replace()小结
Sep 30 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
Mar 30 Javascript
深入理解JS函数的参数(arguments)的使用
May 28 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
Dec 08 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
js 中rewrap-ajax.js插件实例代码
Oct 20 Javascript
Vuex的初探与实战小结
Nov 26 Javascript
js获取本日、本周、本月的时间代码
Feb 01 Javascript
vue实现移动端H5数字键盘组件使用详解
Aug 25 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
Python全排列操作实例分析
2018/07/24 Python
详解Django的CSRF认证实现
2018/10/09 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
python中的句柄操作的方法示例
2019/06/20 Python
Pygame框架实现飞机大战
2020/08/07 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
电脑租赁公司创业计划书
2014/01/08 职场文书
《中华少年》教学反思
2014/02/15 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
关于颐和园的导游词
2015/01/30 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
汉语拼音教学反思
2016/02/22 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP