21个值得收藏的Javascript技巧.doc_第1页
21个值得收藏的Javascript技巧.doc_第2页
21个值得收藏的Javascript技巧.doc_第3页
21个值得收藏的Javascript技巧.doc_第4页
21个值得收藏的Javascript技巧.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

21个值得收藏的Javascript技巧在本文中列出了21个值得收藏的Javascript技巧,在实际工作中,如果能适当运用,则大大提高工作效率。1 Javascript数组转换为CSV格式首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件。则我们可以使用如下的小技巧,代码如下:1 var fruits = apple, peaches, oranges, mangoes; 2 var str = fruits.valueOf(); 输出:apple,peaches,oranges,mangoes其中,valueOf()方法会将Javascript数组转变为逗号隔开的字符串。要注意的是,如果想不使用逗号分割,比如用号分割,则请使用join方法,如下:3 var fruits = apple, peaches, oranges, mangoes; 4 var str = fruits.join(|); 输出: apple|peaches|oranges|mangoes2 将CSV格式重新转换回Javscript数组那么如何将一个CSV格式的字符串转变回Javascript数组呢?可以使用split()方法,就可以使用任何指定的字符去分隔,代码如下:5 var str = apple, peaches, oranges, mangoes; 6 var fruitsArray = str.split(,); 输出 fruitsArray0: apple3 根据索引移除数组中的某个元素假如需要从Javascript数组中移除某个元素,可以使用splice方法,该方法将根据传入参数n,移除数组中移除第n个元素(Javascript数组中从第0位开始计算)。7 function removeByIndex(arr, index) 8 arr.splice(index, 1); 9 10 test = new Array(); 11 test0 = Apple; 12 test1 = Ball; 13 test2 = Cat; 14 test3 = Dog; 15 alert(Array before removing elements: +test); 16 removeByIndex(test, 2); 17 alert(Array after removing elements: +test); 则最后输出的为Apple,Ball,Dog4 根据元素的值移除数组元素中的值下面这个技巧是很实用的,是根据给定的值去删除数组中的元素,代码如下:18 function removeByValue(arr, val) 19 for(var i=0; iarr.length; i+) 20 if(arri = val) 21 arr.splice(i, 1); 22 break; 23 24 25 26 27 var somearray = mon, tue, wed, thur 28 29 removeByValue(somearray, tue); 30 31 /somearray 将会有的元素是 mon, wed, thur 当然,更好的方式是使用prototype的方法去实现,如下代码:32 Atotype.removeByValue = function(val) 33 for(var i=0; ithis.length; i+) 34 if(thisi = val) 35 this.splice(i, 1); 36 break; 37 38 39 40 /. 41 var somearray = mon, tue, wed, thur 42 somearray.removeByValue(tue); 5 通过字符串指定的方式动态调用某个方法有的时候,需要在运行时,动态调用某个已经存在的方法,并为其传入参数。这个如何实现呢?下面的代码可以:43 var strFun = someFunction; /someFunction 为已经定义的方法名 44 var strParam = this is the parameter; /要传入方法的参数 45 var fn = windowstrFun; 46 47 /调用方法传入参数 48 fn(strParam); 6 产生1到N的随机数49 var random = Math.floor(Math.random() * N + 1); 50 51 /产生1到10之间的随机数 52 var random = Math.floor(Math.random() * 10 + 1); 53 54 /产生1到100之间的随机数 55 var random = Math.floor(Math.random() * 100 + 1); 7 捕捉浏览器关闭的事件我们经常希望在用户关闭浏览器的时候,提示用户要保存尚未保存的东西,则下面的这个Javascript技巧是十分有用的,代码如下:56 57 function fnUnloadHandler() 58 59 alert(Unload event. Do something to invalidate users session.); 60 61 62 63 64 就是编写onbeforeunload()事件的代码即可8 检查是否按了回退键同样,可以检查用户是否按了回退键,代码如下:1 window.onbeforeunload = function() 2 return You work will be lost.; 3 ; 9 检查表单数据是否改变有的时候,需要检查用户是否修改了一个表单中的内容,则可以使用下面的技巧,其中如果修改了表单的内容则返回true,没修改表单的内容则返回false。代码如下:4 function formIsDirty(form) 5 for (var i = 0; i form.elements.length; i+) 6 var element = form.elementsi; 7 var type = element.type; 8 if (type = checkbox | type = radio) 9 if (element.checked != element.defaultChecked) 10 return true; 11 12 13 else if (type = hidden | type = password | 14 type = text | type = textarea) 15 if (element.value != element.defaultValue) 16 return true; 17 18 19 else if (type = select-one | type = select-multiple) 20 for (var j = 0; j element.options.length; j+) 21 if (element.optionsj.selected != 22 element.optionsj.defaultSelected) 23 return true; 24 25 26 27 28 return false; 29 30 window.onbeforeunload = function(e) 31 e = e | window.event; 32 if (formIsDirty(document.formssomeForm) 33 / IE 和 Firefox 34 if (e) 35 e.returnValue = You have unsaved changes.; 36 37 / Safari浏览器 38 return You have unsaved changes.; 39 40 ; 10 完全禁止使用后退键下面的技巧放在页面中,则可以防止用户点后退键,这在一些情况下是需要的。代码如下:41 42 window.history.forward(); 43 function noBack() window.history.forward(); 44 45 46 11 删除用户多选框中选择的项目下面提供的技巧,是当用户在下拉框多选项目的时候,当点删除的时候,可以一次删除它们,代码如下:48 function selectBoxRemove(sourceID) 49 /获得listbox的id 50 var src = document.getElementById(sourceID); 51 /循环listbox 52 for(var count= src.options.length-1; count = 0; count-) 53 /如果找到要删除的选项,则删除 54 if(src.optionscount.selected = true) 55 try 56 src.remove(count, null); 57 58 catch(error) 59 60 src.remove(count); 61 62 63 64 12 Listbox中的全选和非全选如果对于指定的listbox,下面的方法可以根据用户的需要,传入true或false,分别代表是全选listbox中的所有项目还是非全选所有项目,代码如下:65 function listboxSelectDeselect(listID, isSelect) 66 var listbox = document.getElementById(listID); 67 for(var count=0; count listbox.options.length; count+) 68 listbox.optionscount.selected = isSelect; 69 70 13 在Listbox中项目的上下移动下面的代码,给出了在一个listbox中如何上下移动项目1 unction listbox_move(listID, direction) 2 3 var listbox = document.getElementById(listID); 4 var selIndex = listbox.selectedIndex; 5 6 if(-1 = selIndex) 7 alert(Please select an option to move.); 8 return; 9 10 11 var increment = -1; 12 if(direction = up) 13 increment = -1; 14 else 15 increment = 1; 16 17 if(selIndex + increment) (listbox.options.length-1) 19 return; 20 21 22 var selValue = listbox.optionsselIndex.value; 23 var selText = listbox.optionsselIndex.text; 24 listbox.optionsselIndex.value = listbox.optionsselIndex + increment.value 25 listbox.optionsselIndex.text = listbox.optionsselIndex + increment.text 26 27 listbox.optionsselIndex + increment.value = selValue; 28 listbox.optionsselIndex + increment.text = selText; 29 30 listbox.selectedIndex = selIndex + increment; 31 32 /. 33 /. 34 35 listbox_move(countryList, up); /move up the selected option 36 listbox_move(countryList, down); /move down the selected option 14 在两个不同的Listbox中移动项目如果在两个不同的Listbox中,经常需要在左边的一个Listbox中移动项目到另外一个Listbox中去,下面是相关代码:37 function listbox_moveacross(sourceID, destID) 38 var src = document.getElementById(sourceID); 39 var dest = document.getElementById(destID); 40 41 for(var count=0; count src.options.length; count+) 42 43 if(src.optionscount.selected = true) 44 var option = src.optionscount; 45 46 var newOption = document.createElement(option); 47 newOption.value = option.value; 48 newOption.text = option.text; 49 newOption.selected = true; 50 try 51 dest.add(newOption, null); /Standard 52 src.remove(count, null); 53 catch(error) 54 dest.add(newOption); / IE only 55 src.remove(count); 56 57 count-; 58 59 60 61 /. 62 /. 63 64 listbox_moveacross(countryList, selectedCountryList); 15 快速初始化Javscript数组下面的方法,给出了一种快速初始化Javscript数组的方法,代码如下:65 var numbers = ; 66 for(var i=1; numbers.push(i+)100;); 67 /numbers = 0,1,2,3 . 100 68 使用的是数组的push方法 16 截取指定位数的小数如果要截取小数后的指定位数,可以使用toFixed方法,比如:69 var num = 2.443242342; 70 alert(num.toFixed(2); / 2.44 71 而使用toPrecision(x)则提供指定位数的精度,这里的x是全部的位数,如: 72 num = 500.2349; 73 result = num.toPrecision(4);/输出500.2 17 检查字符串中是否包含其他字符串下面的代码中,可以实现检查某个字符串中是否包含其他字符串。代码如下:74 if (!Atotype.indexOf) 75 Atotype.indexOf = function(obj, start) 76 for (var i = (start | 0), j = this.length; i j; i+) 77 if (thisi = obj) return i; 78 79 return -1; 80 81 82 83 if (!Stotype.contains) 84 Stotype.contains = function (arg) 85 return !this.indexOf(arg); 86 ; 87 在上面的代码中重写了indexOf方法并定义了contains方法,使用的方法如下:88 var hay = a quick brown fox jumps over lazy dog; 89 var needle = jumps; 90 alert(hay.contains(needle); 18 去掉Javscript数组中的重复元素下面的代码可以去掉Javascript数组中的重复元素,如下:91 function removeDuplicates(arr) 92 var temp = ; 93 for (var i = 0; i arr.length; i+) 94 temparri = true; 9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论