//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" name="rain" id="rain" /> <input type="button" id="test" value="test" onclick="alert( document.getElementById('rain').value.codeLength() )"/> **************/ 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" name="rain" id="rain" /> <input type="button" id="test" value="test" onclick="alert( document.getElementById('rain').value.filterHtml() )"/> **************/ 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" name="cssrain"/> *<input type="radio" value="2" name="cssrain" checked/> *<input type="radio" value="3" name="cssrain"/> *<input type="button" onclick="alert(getRadioValue('cssrain'))" 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 id="form_a"> <input type="checkbox" value="1" name="a"/> <input type="checkbox" value="2" name="a" checked/> <input type="checkbox" value="3" name="a"/> <input type="button" value="全选" onclick="checkAll(document.getElementById('form_a'),'all')"/> <input type="button" value="不选" onclick="checkAll(document.getElementById('form_a'),'none')"/> <input type="button" value="反选" onclick="checkAll(document.getElementById('form_a'),'')"/> </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 id="form_a" name="form_a"> <input type="checkbox" value="1" name="a"/> <input type="checkbox" value="2" name="a" checked/> <input type="checkbox" value="3" name="a"/> <input type="button" value="全选" onclick="alert( SCheckBox('form_a','a') )"/> </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="关键字搜索" name="a" onfocus="clearTxt('a','关键字搜索')" onblur="fillTxt('a','关键字搜索')"/> <input type="text" value="test" name="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" id="a" onclick=" alert('cssrain') " /> <input type="button" value="触发ID为a的onclick事件" onclick=" handerToClick('a') " /> **************/ 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; }
推荐阅读
javascript textarea字数限制
这一个是读取textarea的maxlength属性的值,进行计算,思路很好,但修改起来就麻烦啊,不过对于js爱好者来说是个不错的参考,通过读取属性值进行控制。
textarea字数限制 练习代码多有>>>详细阅读
本文标题:js常用函数2008-8-16整理第1/2页
地址:http://www.17bianji.com/kaifa2/JS/29468.html
1/2 1