您好,欢迎访问一九零五行业门户网

javascript常用功能汇总_javascript技巧

1.javascript的数组api:
//定义数组 var pageids = new array(); pageids.push('a'); 数组长度 pageids.length; //shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 //unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 //注:在ie6.0下测试返回值总为undefined,ff2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。 //pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.pop(); //a:[1,2,3,4] b:5 //push:将参数添加到原数组末尾,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7 //concat:返回一个新数组,是将参数添加到原数组中构成的 var a = [1,2,3,4,5]; var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7] //splice(start,deletecount,val1,val2,):从start位置开始删除deletecount项,并从该位置起插入val1,val2, var a = [1,2,3,4,5]; var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4] var b = a.splice(0,1); //同shift a.splice(0,0,-2,-1); var b = a.length; //同unshift var b = a.splice(a.length-1,1); //同pop a.splice(a.length,0,6,7); var b = a.length; //同push //reverse:将数组反序 var a = [1,2,3,4,5]; var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1] //sort(orderfunction):按指定的参数对数组进行排序 var a = [1,2,3,4,5]; var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5] //slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组 var a = [1,2,3,4,5]; var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5] //join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符 var a = [1,2,3,4,5]; var b = a.join(|); //a:[1,2,3,4,5] b:1|2|3|4|5
2.dom最常用api:
//document方法: getelementbyid(id) node 返回指定结点的引用 getelementsbytagname(name) nodelist 返回文档中所有匹配的元素的集合 createelement(name) node node createtextnode(text) node 创建一个纯文本结点 ownerdocument document 指向这个节点所属的文档 documentelement node 返回html节点 document.body node 返回body节点 //element方法: getattribute(attributename) string 返回指定属性的值 setattribute(attributename,value) string 给属性赋值 removeattribute(attributename) string 移除指定属性和它的值 getelementsbytagname(name) nodelist 返回结点内所有匹配的元素的集合 //node方法: appendchild(child) node 给指定结点添加一个新的子结点 removechild(child) node 移除指定结点的子结点 replacechild(newchild,oldchild) node 替换指定结点的子结点 insertbefore(newchild,refchild) node 在同一层级的结点前面插入新结点 haschildnodes() boolean 如果结点有子结点则返回true //node属性: nodename string 以字符串的格式存放结点的名称 nodetype string 以整型数据格式存放结点的类型 nodevalue string 以可用的格式存放结点的值 parentnode node 指向结点的父结点的引用 childnodes nodelist 指向子结点的引用的集合 firstchild node 指向子结点结合中的第一个子结点的引用 lastchild node 指向子结点结合中的最后一个子结点的引用 previoussibling node 指向前一个兄弟节点;如果这个节点就是兄弟节点,那么该值为null nextsibling node 指向后一个兄弟节点;如果这个节点就是兄弟节点,那么该值为null
3.网上搜藏的一个map对象:
function hashmap() { /** map 大小 **/ var size = 0; /** 对象 **/ var entry = new object(); /** 存 **/ this.put = function (key , value) { if(!this.containskey(key)) { size ++ ; } entry[key] = value; } /** 取 **/ this.get = function (key) { return this.containskey(key) ? entry[key] : null; } /** 删除 **/ this.remove = function ( key ) { if( this.containskey(key) && ( delete entry[key] ) ) { size --; } } /** 是否包含 key **/ this.containskey = function ( key ) { return (key in entry); } /** 是否包含 value **/ this.containsvalue = function ( value ) { for(var prop in entry) { if(entry[prop] == value) { return true; } } return false; } /** 所有 value **/ this.values = function () { var values = new array(); for(var prop in entry) { values.push(entry[prop]); } return values; } /** 所有 key **/ this.keys = function () { var keys = new array(); for(var prop in entry) { keys.push(prop); } return keys; } /** map size **/ this.size = function () { return size; } /* 清空 */ this.clear = function () { size = 0; entry = new object(); } } var map = new hashmap(); /* map.put(a,1); map.put(b,2); map.put(a,5); map.put(c,3); map.put(a,4); */ /* alert(map.containskey(xx)); alert(map.size()); alert(map.get(a)); alert(map.get(xx)); map.remove(a); alert(map.size()); alert(map.get(a)); */ /** 同时也可以把对象作为 key **/ /* var arraykey = new array(1,2,3,4); var arrayvalue = new array(a,b,c,d); map.put(arraykey,arrayvalue); var value = map.get(arraykey); for(var i = 0 ; i = v2) { alert(msg); v2.focus(); return false; } return true; } /** * 比较两个金额大小的方法. * @param {较小的金额} smallnum * @param {较大的金额} bignum * @param {出错提示信息} msg * @return {boolean} */ function comparetwonum(smallnum, bignum, msg) { var v1 = $(smallnum).value; var v2 = $(bignum).value; if (parsefloat(v1) >= parsefloat(v2)) { alert(msg); v2.focus(); return false; } return true; } /** * 检查文本框的长度是否超出指定长度. * @param {文本id} textid * @param {文本框的最大长度} len * @param {文本框描述内容} msg * @return {有错就返回false,否则返回true} */ function checklength(textid, len, msg) { obj = $(textid); str = obj.value; str = str.replace(/[^\x00-\xff]/g, **); reallen = str.length; if (reallen > len) { alert([ + msg + ] + 长度最大为 + len + 位, + 请重新输入!\n注意:一个汉字占2位。); obj.focus(); return false; } else return true; } /** * 判断某个文本框不可以为空. * @param {文本框id} textid * @param {文本框描述内容} msg * @return {有错就返回false,否则返回true} */ function checkifempty(textid, msg) { var textobj = $(textid); var textvalue = textobj.value; if (trim(textvalue) == '') { alert('[' + msg + ']不得为空!'); textobj.focus(); return false; } else { return true; } } /** * 判断指定文本框内容必须为邮件. * @param {文本框id} textid * @param {文本框描述} msg * @return {如果是邮件内容就返回true否则返回false} */ function checkismail(textid, msg) { var obj = $(textid); if (!_isemail(obj.value)) { alert('[' + msg + ']不是合法的邮件地址!'); obj.focus(); return false; } else return true; } /** * 验证是不是邮件. * @param {要验证的字符串} stremail * @return {boolean} */ function _isemail(stremail) { //接下来的验证是否有两个以上的‘.'号,有的话就是错的! var first = stremail.indexof('.'); if (stremail.indexof('@')== -1) { return false; } var tempstr = stremail.substring(first + 1); if (tempstr.indexof('.') != -1) { return false; } if (stremail .search(/^\w+((-\w+)|(\.\w+))*\@[a-za-z0-9]+((\.|-)[a-za-z0-9]+)*\.[a-za-z0-9]+$/) != -1) { return true; } else return false; } /** * 判断某个文本框是否数字. * @param {文本框id} textid * @param {文本框描述内容} msg * @return {boolean} */ function checkisnum(textid, msg) { obj = $(textid); if (isnan(obj.value)) { alert('[' + msg + ']必须为数字。'); obj.focus(); return false; } else return true; } /** * 判断某个文本框是否含有非法字符. * @param {文本框的id} textid * @param {文本框描述内容} msg * @return {有错就返回false否则返回true} */ function checkisvalid(textid, msg) { obj = $(textid); if (!_isvalidstring(obj.value, '[' + msg + ']不得含有非法字符。')) { obj.focus(); return false; } return true; } /** * 判断是不是合法字符串. * @param {要进行判断的字符串} szstr * @param {文本描述} errmsg * @return {合法则返回true否则返回false} */ function _isvalidstring(szstr,errmsg) { voidchar = '\>= 0; i--) { if (obj.options[i].value == value) { obj.options[i].selected = true; return; } } */ obj.value= value; } /** * 根据键值串的内容进行下拉菜单的动态组装 * @param {要进行下拉菜单组装的dom对象} obj * @param {键值对用,和;分割,例如'1,男;2,女;3,未知'} valandtext */ function setselectcontent(obj,valandtext){ if(trim(valandtext)==''){ alert('没有要进行组装下拉菜单的数据!'); return false; } clearselect(obj); var keyandvalues = valandtext.split(';'); for(var i=0;i0; i--) { obj.remove(0); } } /*************** 以下方法和多选框相关*************************************************/ /** * 返回选中的checks的id组成的字符串,逗号隔开. * @param {checks数组} checks * @return 选择的id组成的字符串 */ function getcheckedids(checks){ var selectedvalue = ''; var len = checks.length; for(var index=0; index0) return selectedvalue.substring(0,selectedvalue.length-1); return selectedvalue; }
下面的代码放到html标签里,并在head里调用上面的js:
非空: checkifempty('a','非空校验')
邮箱: checkismail('b','邮箱校验')
数字: checkisnum('c','数字校验')
合法字符: checkisvalid('d','合法性校验')
小的日期: 大的日期: comparetwodate('e','f','小日期与大日期关系错误!')
小的数: 大的数: comparetwonum('k','l','大小数目关系不正确!')
字符长度校验(<5): checklength('g',5,'长度校验')
下拉菜单非空校验: 请选择 立项 可研 checkchooseselect('h','下拉菜单非空','-1')
测试表单校验方法
得到下拉菜单的值 getselecttext(sss)和getselectvalue(sss)
输入下拉菜单的键值字符串(如右所示) 设置下拉菜单的值 setselectcontent($('h'),sss)
得到多选选择的id getcheckedids(document.getelementsbyname('j'))

以上所述就是本文的全部内容了,希望大家能够喜欢。
其它类似信息

推荐信息