一些常用且实用的原生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 相关文章推荐
ie focus bug 解决方法
Sep 03 Javascript
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
JQuery的Pager分页器实现代码
May 03 Javascript
微信小程序 数据绑定及运算的简单实例
Sep 20 Javascript
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
vue+springmvc导出excel数据的实现代码
Jun 27 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 Javascript
vue服务端渲染添加缓存的方法
Sep 18 Javascript
vue3修改link标签默认icon无效问题详解
Oct 09 Javascript
JavaScript仿京东轮播图效果
Feb 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
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
Python简单的制作图片验证码实例
2017/05/31 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
keras输出预测值和真实值方式
2020/06/27 Python
python logging模块的使用详解
2020/10/23 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
汉森批发:Hansen Wholesale
2018/05/24 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
意外伤害赔偿协议书
2014/09/16 职场文书
社区节水倡议书
2015/04/29 职场文书
微观世界观后感
2015/06/10 职场文书
网吧员工管理制度
2015/08/05 职场文书
机械生产实习心得体会
2016/01/22 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python