12个提高JavaScript实用技巧
来源:互联网 发布:手机淘宝强制拍摄脸部 编辑:程序博客网 时间:2024/04/29 23:45
1根据索引移除数组中的某个元素
假如需要从JavaScript数组中移除某个元素,可以使用splice方法,该方法将根据传入参数n,移除数组中移除第n个元素
Function removeByIndex(arr,index)
{
arr.splice(index,1);
}
test=new Arry();
test[0]='Apple';
test[1]='Ball';
test[2]='Cat';
test[3]='Dog';
alert("Array Before removing elements:"+test);
removeByIndex(test,2);
Alert("Arry After removing elemrnts"+test);
2 根据元素的值移除数组中的值
function removeByValue(arr, val)
{
for(var i=0;i<arr.length;i++)
{
if(arr[i]==val)
{
arr.splice(i,1);
break;
}
}
}
var somearray=["moon","tue","wed","thur"];
removeByValue(somearray,"tue");
还可以使用Prototype的方法去实现,如下:
Array.prototype.removeByValue=function(val)
{
for(var i=0;i<this.length;i++)
{
if(this[i]==val){
this.splice(i,1);
break;
}
}
}
var somearray=["mon","tue","wed","thur"]
somearray.removeByValue("tue");
3 通过字符串指定的方式动态调用某个方法
有的时候,需要在运行时,动态调用某个已经存在的方法,并为其传入参数。
var strFun="someFunction"; // someFunction为已经定义的方法名
var strParam=''this is the Parameter"; //要传入方法的参数
var fn=window[strFun];
// 调用方法传入参数
fn(strParam);
4 产生1到N的随机数
var random=Math.floor(Math.random()*N+1);
//产生1到10之间的随机数
var random=Math.floor(Math.random()*10+1);
//产生 1 到100之间的随机数
var random=Math,floor(Math.random()*100+1);
5 补捉浏览器关闭的事件
当需要在用户关闭浏览器的时候,提示用户要保存信息,代码如下
<script language="javascript">
function fnUnloadHandler()
{
alert(“Unload event . Do something to invalidate users session”);
}
</script>
<body onbeforeunload="fnUnloadHandler()">
............
</body>
6 检查表单数据是否改变
有的时候,需要检查用户是否修改了一个表单中的内容,则可以使用下面的技巧,其中如果修改了表单的内容则返回true,没修改表单的内容则返回false
function formIsDirty(form)
{
for( var i=0; i<form.elements.length;i++)
{
var elemrnt=form.elements[i];
var type=element.type;
if( type=="checkbox"||type=="radio")
{
if(element.checked!=element.defaultChecked)
{
return true;
}
}
else if (type=="hidden"||type=="password"||type=="text"||type=="textarea")
{
if (element.value!=element.defaultValue)
{
return true;
}
}
else if(type=="select-one"||type=="select-multiple")
{
for(var j=0;j<element.options.length;j++)
{
if(element.options[j].selected!=element.options[j].defaultSelected)
{
return false;
}
}
}
}
return false;
}
window.onbeforeunload=function(e)
{
e=e||window.event;
if(formIsDirty(document.forms["someForm"]))
{
//IE和firefx
if(e)
{
e.returnValue="You have unsaved changes";
}
//Safar浏览器
return "you have unsaved changes";
}
}
7 完全禁止使用后退键
<scipt type="text/javascript">
window.history.forward();
function noBack(){window.history.forward();}
</script>
<Body onload="noBack();" onpagesshow="if (event.persisted)noBack()" onunload="">
8 Listbox中的全选和全不选
如果对于指定的listbox,下面的方法可以根据用户的需要,传入true或false 代表是全选listbox中的所有项目还是非全选所有项目,代码如下:
functon listboxSelectDeselect(listID,isSelect)
{
var listbox=document.getElementById(lisrID);
for(var count=0;count<listbox.options.length;count++)
{
listbox.options[count].selected=isSelect;
}
}
9 快速初始化javascript数组
var numbers=[];
for(var i=1;numbers.push(i++)<100;);
//numbers=[0,1,2,3,...100]
使用的是数组push 方法
10 截取指定位数的小数
可以使用toFixed方法,比如:
var num=2.443242342;
alert(num.toFixed(2)); //2.44
而使用toPrecision(x)则提供指定位数的精度,这里的X是全部的位数
如:
num=500.2349;
result=num.toPrecision(4) ;输出500.2
11.去除JavaScript数组中的重复元素
下面 的代码可以去掉JavaScript数组中的重复元素,如下:
function removeDuplicates(arr)
{
var temp=0;
for(var i=0;i<arr.length;i++)
temp[arr[i]]=true;
var r=[];
for (var k in temp)
r.push(k);
return r;
}
//用法
var fruits=['apple','orange','peach','apple','strawberry','organge'];
var uniquefruit=removeDuplicates(fruits);
// 输出的uniquefruits['apple','organge','peach','strawberry'];
12 对URL进行编码
var myOthUrl="http://example.com/index.html?url="+encodeURIComponent(myUrl);
- 12个提高JavaScript实用技巧
- 10个提高网站可用性的实用技巧
- 13个JavaScript网站制作中实用技巧
- 总结收藏的41个JavaScript实用技巧
- 12 个 windows 7 实用技巧
- javascript 实用技巧
- JavaScript实用技巧
- JavaScript实用技巧
- JavaScript实用技巧
- JavaScript实用技巧
- javascript 实用技巧
- Javascript实用技巧
- Javascript实用技巧
- JavaScript实用技巧
- JavaScript实用技巧
- 41个Web开发者必须收藏的JavaScript实用技巧
- 41个Web开发者必须收藏的JavaScript实用技巧
- 40个Web开发者必须收藏的JavaScript实用技巧
- 算法导论堆排序Java实现
- object-c的id
- c++中的重载操作符和虚函数实现多态
- UNIX网络编程——sockatmark函数
- 高级C++面试的一些题目
- 12个提高JavaScript实用技巧
- 图论入门之-----最短路之dijkstra 算法
- POJ 2299 Ultra-QuickSort ---归并排序 求逆序
- hdu-改革春风吹满地
- 【原】Ecc文档关系说明
- 试用CSDN的代码片功能
- 07-一个IP绑定多个域名(根据端口号不同进行绑定)
- 【转】CLS(公共语言规范)的CLSCompliant(跨语言调用)
- lightoj 1319 - Monkey Tradition 中国剩余定理(孙子定理)+poj 2891 Strange Way to Express Integers