一些常用且实用的原生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 获取滚动条位置等信息的函数
Sep 08 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
Jul 07 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
Sep 22 Javascript
自编jQuery插件实现模拟alert和confirm
Sep 01 Javascript
简介JavaScript中的setTime()方法的使用
Jun 11 Javascript
浅谈javascript:两种注释,声明变量,定义函数
Sep 29 Javascript
微信小程序  modal弹框组件详解
Oct 27 Javascript
webpack+vue中使用别名路径引用静态图片地址
Nov 20 Javascript
vue addRoutes实现动态权限路由菜单的示例
May 15 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 Javascript
js实现旋转木马轮播图效果
Jan 10 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 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
Python标准库shutil用法实例详解
2018/08/13 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
python 多进程队列数据处理详解
2019/12/23 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
介绍下Java中==和equals的区别
2013/09/01 面试题
UNIX文件系统常用命令
2012/05/25 面试题
服装机修工岗位职责
2013/12/26 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
Django分页器的用法你都了解吗
2021/05/26 Python
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis