一些常用且实用的原生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 24 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
Jul 05 Javascript
教你JS中的运算符乘方、开方及变量格式转换
Aug 09 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
Jun 12 Javascript
Less 安装及基本用法
May 05 Javascript
基于Vue-cli快速搭建项目的完整步骤
Nov 03 Javascript
vue的for循环使用方法
Feb 12 Javascript
vue踩坑记录之数组定义和赋值问题
Mar 20 Javascript
vue实现菜单切换功能
May 08 Javascript
解决layUI的页面显示不全的问题
Sep 20 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
Dec 29 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
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
Yii使用技巧大汇总
2015/12/29 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
python实现画圆功能
2018/01/25 Python
wxPython实现分隔窗口
2019/11/19 Python
python中property和setter装饰器用法
2019/12/19 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
大家检讨书5000字
2014/02/03 职场文书
收银员的岗位职责范本
2014/02/04 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
检讨书模板
2015/01/29 职场文书
经理助理岗位职责
2015/02/02 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
MySQL里面的子查询的基本使用
2021/08/02 MySQL
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技