一些常用且实用的原生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 获得选中文本内容的方法
Feb 15 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
Mar 30 Javascript
浅谈js script标签中的预解析
Dec 30 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
Vue原理剖析 实现双向绑定MVVM
May 03 Javascript
Angular2的管道Pipe的使用方法
Nov 07 Javascript
详解angular2 控制视图的封装模式
Dec 27 Javascript
详解Vue调用手机相机和相册以及上传
May 05 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
Sep 25 Javascript
微信小程序接入腾讯云验证码的方法步骤
Jan 07 Javascript
带你使用webpack快速构建web项目的方法
Nov 12 Javascript
微信小程序实现底部弹出框
Nov 18 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
PHP中几个常用的魔术常量
2012/02/23 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
2007/09/04 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
python根据文件大小打log日志
2014/10/09 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python中is与==判断的区别
2017/03/28 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
行政办公室岗位职责
2014/03/18 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
殡葬服务心得体会
2014/09/11 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
上诉状格式
2015/05/23 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
pandas数值排序的实现实例
2021/07/25 Python