一些常用且實(shí)用的原生JavaScript函數(shù)
更新時(shí)間:2010年09月08日 11:47:34 作者:
日常開始中常用到的一些原生JavaScript函數(shù),比較實(shí)用, 今天特地整理一下,分享給大家,希望對(duì)大家有用,會(huì)常更新,同時(shí)也歡迎大家補(bǔ)充.
css及html方面的技巧總結(jié),點(diǎn)此前往: 前端開發(fā)中一些常用技巧總結(jié), 你還可以前往蘭芝博客, 查看由淘寶UED整理的前端tips: http://www.12sui.cn/category/css/.
1. document.getElementById的簡(jiǎn)寫: http://www.dbjr.com.cn/article/24762.htm;
2. getElementsByTagName的簡(jiǎn)寫方式: http://www.dbjr.com.cn/article/24026.htm;
3. 原生JavaScript中獲取元素索引的函數(shù): http://www.dbjr.com.cn/article/24763.htm;
4. 替代window.onload,可多次調(diào)用的加載函數(shù):
function iLoad(func) {
var oLoad=window.onload;
if(typeof window.onload!='function'){
window.onload=func;
}else{
window.onload=function(){
oLoad();
func();
}
}
}
5. 獲取下一個(gè)元素節(jié)點(diǎn):
function nextElem(node){
if(node.nodeType==1) return node;
if(node.nextSibling) return nextElem(node.nextSibling);
return null;
}
6. 獲取上一個(gè)元素節(jié)點(diǎn)(此函數(shù)須調(diào)用第五條中的函數(shù)):
function prevElem(node){
if(node.nodeType==1){
return node;
}else if(node.previousSibling){
return nextElem(node.previousSibling);
}else{
return null;
}
}
7. 原生JavaScript中有insertBefore方法,可惜卻沒有insertAfter方法,怎么辦?用如下函數(shù)實(shí)現(xiàn):
function insertAfter(newChild,refChild){
var parElem=refChild.parentNode;
if(parElem.lastChild==refChild){
refChild.appendChild(newChild);
}else{
parElem.insertBefore(newChild,refChild.nextSibling);
}
}
8. 為元素添加樣式[記住是添加不是替換,相當(dāng)于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. 檢測(cè)樣式
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, ' ');
}
}
原文發(fā)布于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()
用來顯示或隱藏一個(gè)DOM元素。
function toggle(obj) {
var el = document.getElementById(obj);
el.style.display=(el.style.display !="none"?"none":"")
}
1. document.getElementById的簡(jiǎn)寫: http://www.dbjr.com.cn/article/24762.htm;
2. getElementsByTagName的簡(jiǎn)寫方式: http://www.dbjr.com.cn/article/24026.htm;
3. 原生JavaScript中獲取元素索引的函數(shù): http://www.dbjr.com.cn/article/24763.htm;
4. 替代window.onload,可多次調(diào)用的加載函數(shù):
復(fù)制代碼 代碼如下:
function iLoad(func) {
var oLoad=window.onload;
if(typeof window.onload!='function'){
window.onload=func;
}else{
window.onload=function(){
oLoad();
func();
}
}
}
5. 獲取下一個(gè)元素節(jié)點(diǎn):
復(fù)制代碼 代碼如下:
function nextElem(node){
if(node.nodeType==1) return node;
if(node.nextSibling) return nextElem(node.nextSibling);
return null;
}
6. 獲取上一個(gè)元素節(jié)點(diǎn)(此函數(shù)須調(diào)用第五條中的函數(shù)):
復(fù)制代碼 代碼如下:
function prevElem(node){
if(node.nodeType==1){
return node;
}else if(node.previousSibling){
return nextElem(node.previousSibling);
}else{
return null;
}
}
7. 原生JavaScript中有insertBefore方法,可惜卻沒有insertAfter方法,怎么辦?用如下函數(shù)實(shí)現(xiàn):
復(fù)制代碼 代碼如下:
function insertAfter(newChild,refChild){
var parElem=refChild.parentNode;
if(parElem.lastChild==refChild){
refChild.appendChild(newChild);
}else{
parElem.insertBefore(newChild,refChild.nextSibling);
}
}
8. 為元素添加樣式[記住是添加不是替換,相當(dāng)于jQuery中的addClass(value)]:
復(fù)制代碼 代碼如下:
function addClass(elem,value){
if(!elem.className){
elem.className=value;
}else{
var oValue=elem.className;
oValue+=" ";
oValue+=value;
elem.className=oValue;
}
}
9. 獲取元素的樣式:
復(fù)制代碼 代碼如下:
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. 兼容事件綁定:
復(fù)制代碼 代碼如下:
function addEventSamp(obj,evt,fn){
if (obj.addEventListener) {
obj.addEventListener(evt, fn, false);
}else if(obj.attachEvent){
obj.attachEvent('on'+evt,fn);
}
}
11. 移除事件
復(fù)制代碼 代碼如下:
function removeEventSamp(obj,evt,fn){
if(obj.removeEventListener){
obj.removeEventListener(evt,fn,false);
}else if(obj.detachEvent){
obj.detachEvent('on'+evt,fn);
}
}
12. 檢測(cè)樣式
復(fù)制代碼 代碼如下:
function hasClass(element, className){
var reg = new RegExp('(\\s|^)' + className + '(\\s|$)');
return element.className.match(reg);
}
13. 刪除樣式
復(fù)制代碼 代碼如下:
function removeClass(element, className){
if (hasClass(element, className)) {
var reg = new RegExp('(\\s|^)' + className + '(\\s|$)');
element.className = element.className.replace(reg, ' ');
}
}
原文發(fā)布于Mr.Think的博客: http://mrthink.net/javascript-common-function-tip/
$()
復(fù)制代碼 代碼如下:
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()
用來顯示或隱藏一個(gè)DOM元素。
復(fù)制代碼 代碼如下:
function toggle(obj) {
var el = document.getElementById(obj);
el.style.display=(el.style.display !="none"?"none":"")
}
您可能感興趣的文章:
- 一些常用的Javascript函數(shù)
- 經(jīng)常用到的javascript驗(yàn)證函數(shù)收集
- 常用簡(jiǎn)易JavaScript函數(shù)
- 幾個(gè)常用的JavaScript字符串處理函數(shù) - split()、join()、substring()和indexOf()
- JavaScript 常用函數(shù)庫詳解
- Jquery作者John Resig自己封裝的javascript 常用函數(shù)
- JavaScript 常用函數(shù)
- JavaScript 匿名函數(shù)(anonymous function)與閉包(closure)
- javascript中動(dòng)態(tài)函數(shù)用法實(shí)例分析
- 跟我學(xué)習(xí)javascript的函數(shù)和函數(shù)表達(dá)式
- 跟我學(xué)習(xí)javascript的函數(shù)調(diào)用和構(gòu)造函數(shù)調(diào)用
- 詳解JavaScript中常用的函數(shù)類型
相關(guān)文章
在javascript中隨機(jī)數(shù) math random如何生成指定范圍數(shù)值的隨機(jī)數(shù)
本篇文章給大家介紹在javascript中隨機(jī)數(shù)math random如何生成指定范圍數(shù)值的隨機(jī)數(shù),由于math.random生成了一個(gè)偽隨機(jī)數(shù),之后還要經(jīng)過我們的后期處理。對(duì)隨機(jī)數(shù)math random感興趣的朋友一起了解了解吧2015-10-10
Javascript設(shè)計(jì)模式之裝飾者模式詳解篇
本文主要介紹了Javascript設(shè)計(jì)模式之裝飾者模式的相關(guān)知識(shí)。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01
javaScript讓文本框內(nèi)的最后一個(gè)文字的后面獲得焦點(diǎn)實(shí)現(xiàn)代碼
讓文本框內(nèi)的最后一個(gè)文字的后面獲得焦點(diǎn),在應(yīng)用中很常見,接下來提供解決方案,按興趣的朋友可以了解下2013-01-01
js window對(duì)象屬性和方法相關(guān)資料整理
這篇文章主要介紹了js window對(duì)象屬性和方法相關(guān)資料整理,需要的朋友可以參考下2015-11-11

