一些常用且实用的原生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的onchange事件与jQuery的change()方法比较
Sep 28 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
Aug 27 Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
Mar 04 Javascript
JavaScript学习笔记之数组随机排序
Mar 23 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
Jun 07 Javascript
Bootstrap警告框(Alert)插件使用方法
Mar 21 Javascript
webpack本地开发环境无法用IP访问的解决方法
Mar 20 Javascript
webpack4 入门最简单的例子介绍
Sep 05 Javascript
koa-router路由参数和前端路由的结合详解
May 19 Javascript
微信小程序实现按字母排列选择城市功能
Nov 25 Javascript
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
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实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python基础入门之seed()方法的使用
2015/05/15 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
python字符串连接方法分析
2016/04/12 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
如何提高JDBC的性能
2013/04/30 面试题
《掌声》教学反思
2014/02/23 职场文书
三八节主持词
2014/03/17 职场文书
教师节获奖感言
2015/07/31 职场文书
Java数组详细介绍及相关工具类
2022/04/14 Java/Android