<li>sdf</li><li>sdf</li><li>sdf</li><li>sdf</li><li>sdf</li><li>sdf</li>
</ul>
可能你要为每个li添加click
为每个添加那可繁琐且容易出现溢出(ie)
其实只要为 ul一个添加就行了,因为事件是冒泡向上的
var ul = document.getElementById('a');
ul.onclick = function (e){
!e&&(e=event);
var target = e.srcElement||e.target;
if(target.tagName=='LI'){
//your code
}
}
8.尽量用原生的方法,因为原生的都是用c/c++编译而成的他们执行的要比用js写的方法快多了
9.appendChild用的多时一定要用docuemntfragment
比如
for(var i=0;i<1000;i++){
var o = document.createElement('div');
document.body.appendChild(o);
}
用documentFragment
var f = document.createDocumentFragment();
for(var i=0;i<1000;i++){
var o = document.createElement('div');
f.appendChild(o);
}
document.body.appendChild(f);
10. if else用的>=3个了,那用switch吧,好阅读,性能好
11. if<=3,别用if了,用3元表达式吧
12. if==1,if改&&
if(a==1)a=2
改
a==1&&(a=2);
13.计算元素位置,while()offsetParent
这个方式是老方式了,现在的浏览器ie6以上,ff3.1以上,chrome,opera(我只测了最新的)都支持这个el.getBoundingClientRect返回一个对像,分别是top,left,right,bottom的值
14.正则的查找没有indexOf快
var s= 'sdfsdfsdfAAAsdfdsfs';
for(var i=0;i<1000;i++){
s.indexOf('AAA')
}
比这个快
var s= 'sdfsdfsdfAAAsdfdsfs';
for(var i=0;i<1000;i++){
/AAA/.test(s)
}
15.在正则中多用非捕获(?:)这样快
16.设置某个元素的style时用cssText简单些
el.style.cssText +=";postion:absolute;"
(注意:position前;不能去了,因为ie没有这个;position认不出来了就,比的浏览器没这个毛病)
17.在new 时,没有参数时函数名后边的括号可以去了
new fn()==>new fn
new Image()==>new Image
本文由虚拟主机域名注册服务商 银众网络(http://www.yinzhong.net) 整理,如需转载,请保留来源。
(责任编辑:admin) |