一些常用且实用的原生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的仿flash的广告轮播代码
Nov 04 Javascript
javascript各浏览器中option元素的表现差异
Apr 07 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
Apr 14 Javascript
微信小程序 教程之小程序配置
Oct 17 Javascript
AngularJS变量及过滤器Filter用法分析
Nov 22 Javascript
简单实现js悬浮导航效果
Feb 05 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
webpack项目轻松混用css module的方法
Jun 12 Javascript
jQuery实现验证用户登录
Dec 10 jQuery
javascript canvas API内容整理
Feb 16 Javascript
微信小程序收藏功能的实现代码
Jun 19 Javascript
uniapp开发打包多端应用完整方法指南
Dec 24 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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
php分页函数完整实例代码
2014/09/22 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
js函数般调用正则
2008/04/08 Javascript
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
Web开发之JavaScript
2012/03/29 Javascript
document.addEventListener使用介绍
2014/03/07 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
Python使用PIL模块生成随机验证码
2017/11/21 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
python实现FTP循环上传文件
2020/03/20 Python
python numpy实现rolling滚动案例
2020/06/08 Python
python制作微博图片爬取工具
2021/01/16 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
初中生三年学习生活的自我评价
2013/11/03 职场文书
肯尼迪就职演说稿
2013/12/31 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
跳槽求职信范文
2014/05/26 职场文书
商务经理岗位职责
2014/08/03 职场文书
工作失职检讨书
2015/01/26 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技