//js常用函数 更新2008-8-16 取自网络
function $(id) { 
return document.getElementById(id); 
} 
/************** 
函数:getElementsByClassName 
使用方法: 
获取document内的超链接class是“info-links”的。 
getElementsByClassName(document, "a", "info-links"); 
获取container内的div的class是col的. 
getElementsByClassName(document.getElementById("container"), "div", "col"); 
获取document内的所有class是“click-me”的。 
getElementsByClassName(document, "*", "click-me"); 
返回一个数组 
**************/ 
function getElementsByClassName(oElm, strTagName, strClassName){ 
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); 
var arrReturnElements = new Array(); 
strClassName = strClassName.replace(/-/g, "\-"); 
var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)"); 
var oElement; 
for(var i=0; i<arrElements.length; i++){ 
oElement = arrElements[i]; 
if(oRegExp.test(oElement.className)) 
arrReturnElements.push(oElement); 
} 
return (arrReturnElements) 
} 
/************** 
replaceAll: 
替换字符串中的字符。 
用法: 
yourstring.replaceAll("要替换的字符", "替换成什么"); 
例子: 
"cssrain".replaceAll("s", "a"); 
" cs sr ai n".replaceAll(" ", ""); 
**************/ 
String.prototype.replaceAll = function (AFindText,ARepText){ 
raRegExp = new RegExp(AFindText,"g"); 
return this.replace(raRegExp,ARepText); 
} 
/************** 
* 字符串前后空格处理。 
* 如果想替换中间的空格,请用replaceAll方法。 
* 用法: 
* " cssrain ".trim(); 
**************/ 
String.prototype.trim=function() 
{ 
return this.replace(/(^\s*)|(\s*$)/g,"");//将字符串前后空格,用空字符串替代。 
} 
/************** 
* 计算字符串的真正长度 
//String有个属性length,但是它不能区分英文字符, 
//计算中文字符和全角字符。但是在数据存储的时候中文和全角都是用两个字节来存储的, 
//所有需要额外处理一下。自己写了个函数,返回String正真的长度. 
用法: 
<input type="text" /> 
<input type="button" value="test"/> 
**************/ 
String.prototype.codeLength=function(){ 
var len=0; 
if(this==null||this.length==0) 
return 0; 
var str=this.replace(/(^\s*)|(\s*$)/g,"");//去掉空格 
for(i=0;i<str.length;i++) 
if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128) 
len++; 
else 
len+=2; 
return len; 
} 
//JS获取字符串的实际长度,用来代替 String的length属性 
String.prototype.length = function(){ 
return this.replace(/[\u4e00-\u9fa5]+/g,"**").length; 
} 
/************** 
//过滤HTML 
//在评论的时候为了防止用户提交带有恶意的脚本,可以先过滤HTML标签,过滤掉双引号,单引号,符号&,符号<,符号 
用法: 
<input type="text" /> 
<input type="button" value="test"/> 
**************/ 
String.prototype.filterHtml=function(){ 
return this.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"); 
} 
/************** 
format: 
格式化时间。 
用法: 
yourdate.format("你的日期格式"); 
例子: 
obj0 = new Date("Sun May 04 2008").format("yyyy-MM-dd"); 
obj1 = new Date().format("yyyy-MM-dd hh:mm:ss"); 
obj2 = new Date().format("yyyy-MM-dd"); 
obj3 = new Date().format("yyyy/MM/dd"); 
obj4 = new Date().format("MM/dd/yyyy"); 
**************/ 
Date.prototype.format = function(format) 
{ 
var o = { 
"M+" : this.getMonth()+1, //month 
"d+" : this.getDate(), //day 
"h+" : this.getHours(), //hour 
"m+" : this.getMinutes(), //minute 
"s+" : this.getSeconds(), //second 
"q+" : Math.floor((this.getMonth()+3)/3), //quarter 
"S" : this.getMilliseconds() //millisecond 
} 
if(/(y+)/.test(format)) format=format.replace(RegExp.$1, 
(this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
for(var k in o)if(new RegExp("("+ k +")").test(format)) 
format = format.replace(RegExp.$1, 
RegExp.$1.length==1 ? o[k] : 
("00"+ o[k]).substr((""+ o[k]).length)); 
return format; 
} 
/************** 
format: 
格式化数字. 
例子: 
var n = format_number( 123456.45656 , 2 ); // .toFixed(2)也可以实现,不过不兼容FF. 
alert(n); 
**************/ 
function format_number(str,digit) 
{ 
if(isNaN(str)) 
{ 
alert("您传入的值不是数字!"); 
return 0; 
} 
else if(Math.round(digit)!=digit) 
{ 
alert("您输入的小数位数不是整数!"); 
return 0; 
} 
else 
return Math.round(parseFloat(str)*Math.pow(10,digit))/Math.pow(10,digit); 
} 
/**********表单操作*********/ 
/************** 
* 得到单选框选中的值。 
* 用法: 
*<input type="radio" value="1"/> 
*<input type="radio" value="2" checked/> 
*<input type="radio" value="3"/> 
*<input type="button" value="test"/> 
**************/ 
function getRadioValue(radioName){ 
var obj=document.getElementsByName(radioName); 
for(var i=0;i<obj.length;i++){ 
if(obj[i].checked){ 
return obj[i].value; 
} 
} 
} 
/************** 
* 复选框全选/不选/反选 
* 用法: 
<form> 
<input type="checkbox" value="1"/> 
<input type="checkbox" value="2" checked/> 
<input type="checkbox" value="3"/> 
<input type="button" value="全选"/> 
<input type="button" value="不选"/> 
<input type="button" value="反选"/> 
</form> 
**************/ 
function checkAll(form, sel) { 
for (i = 0, n = form.elements.length; i < n; i++) { 
if(form.elements[i].type == "checkbox") { 
if(form.elements[i].checked == true) { 
form.elements[i].checked = (sel == "all" ? true : false); 
} else { 
form.elements[i].checked = (sel == "none" ? false : true); 
} 
} 
} 
} 
/************** 
* 复选框检查是否选中。 
* 如果没一个选中,会返回false. 
* 用法: 
<form> 
<input type="checkbox" value="1"/> 
<input type="checkbox" value="2" checked/> 
<input type="checkbox" value="3"/> 
<input type="button" value="全选"/> 
</form> 
**************/ 
function SCheckBox(_formName,_checkboxName){ 
var selflag = {'checked':0,'cvalues':[]}; 
_scheckbox = eval('document.'+_formName+'.'+_checkboxName); 
if(_scheckbox){ 
if(eval(_scheckbox.length)){ 
for(i=0;i<_scheckbox.length;i++){ 
if(_scheckbox[i].checked){ 
selflag.checked++; 
selflag.cvalues.push(_scheckbox[i].value); 
} 
}; 
}else if(_scheckbox.checked){ 
selflag.checked++; 
selflag.cvalues.push(_scheckbox.value); 
} 
if(selflag.checked){ 
return selflag; 
} 
} 
return false; 
} 
//如果控件值=原来值则清空 
function clearInput(input){ 
if(input.value == input.defaultValue){ 
input.value = ""; 
} 
} 
/***************表单操作结束**********/ 
/**************/ 
//收藏到书签.(兼容IE和FF)。 
function addBookmark(title,url) { 
if (window.sidebar) { 
window.sidebar.addPanel(title, url,""); 
} else if( document.all ) { 
window.external.AddFavorite( url, title); 
} else if( window.opera && window.print ) { 
return true; 
} 
} 
/************** 
函数 : 文本框得到与失去焦点 操作。 
这个方法经常在文本框搜索的时候出现。 
文本里显示 “ 搜索 ”,然后当用户鼠标点击此文本, 
文本框内容清空。如果用户没填写内容,那么文本的值又复原。 
如果填写了,就显示用户填写的。 
用法: 
<input type="" value="关键字搜索" onfocus="clearTxt('a','关键字搜索')" onblur="fillTxt('a','关键字搜索')"/> 
<input type="text" value="test" /> 
**************/ 
function clearTxt(id,txt) { 
if (document.getElementById(id).value == txt) 
document.getElementById(id).value="" ; 
return ; 
} 
function fillTxt(id,txt) { 
if ( document.getElementById(id).value == "" ) 
document.getElementById(id).value=txt; 
return ; 
} 
/************** 
函数 : 用来判断鼠标按的是左键还是右键。(兼容IE和ff) 
用法: 
onmousedown="mouse_keycode(event)" 
**************/ 
function mouse_keycode(event){ 
var event=event||window.event; 
var nav=window.navigator.userAgent; 
if (nav.indexOf("MSIE")>=1) //如果浏览器为IE.解释:因为 document.all 是 IE 的特有属性,所以通常用这个方法来判断客户端是否是IE浏览器 ,document.all?1:0; 
{ 
if(event.button==1){alert("左键")} 
else if(event.button==2){alert("右键")} 
} 
else if(nav.indexOf("Firefox")>=1) ////如果浏览器为Firefox 
{ 
if(event.button==0){alert("左键");} 
else if(event.button==2){alert("右键");} 
} 
else{ //如果浏览器为其他 
alert("other"); 
} 
} 
/************** 
函数 :触发某个对象的onclick事件。(兼容IE和FF) 
用法: 
<input type="button" value="aaa" /> 
<input type="button" value="触发ID为a的onclick事件" /> 
**************/ 
function handerToClick(objid){ 
var obj=document.getElementById(objid); 
if(document.all){ 
obj.fireEvent("onclick"); 
}else{ 
var e=document.createEvent('MouseEvent'); 
e.initEvent('click',false,false); 
obj.dispatchEvent(e); 
} 
} 
/************** 
实现按回车提交 
**************/ 
function QuickPost(evt,form){ 
var evt = window.event?window.event:evt; 
if(evt.keyCode == 13){ 
document.getElementById(form).submit(); 
} 
} 
/********* 
验证是否是数字 
**********/ 
function checkIsInteger(str) 
{ 
//如果为空,则通过校验 
if(str == "") 
return true; 
if(/^(\-?)(\d+)$/.test(str)) 
return true; 
else 
return false; 
} 
1
您可能感兴趣的文章:
