如果不了解javasrcipt中基本的DOM属性和方法的话,很容易滥用jQuery对象。比如:
[code=”javascript”]
$(‘#someAnchor’).click(function()?{
alert(?$(this).attr(‘id’)?);
});
[/code]
如果你只是通过jQ对象获取简单的dom元素的属性比如id,那么你完全可以使用js原生的方法:
[code=”javascript”]
$(‘#someAnchor’).click(function()?{
alert(?this.id?);
});
[/code]
诸如“src,” “href,” 和“style.”等一些属性在老版本的ie中使用了getAttribute方法。
记住了。谢谢。
var $this=document.getElementById(“qqq”);
var k= new Date();
for(var i=0;i<100000;i++)
{
var c = $this.id;
}
var p=new Date();
var str = ""+(p-k)+"”;
var k= new Date();
for(var i=0;i<100000;i++)
{
var c = $($this).attr("id");
}
var p=new Date();
str+= ""+(p-k)+"”;
$this.innerHTML = str;
FF测试:DOM 27-49
JQ 1000-1220
IE测试: DOM 212
JQ 4544
CHORM测试: DOM 29
JQ 593
看到你做的这个测试,感觉确实差很多…
能说下为什么不
又改版了啊 头上的导航 怎么没管ie6啊
嗯,确实,我现在也是能用原生的,就尽量用原生的。
顺便说一句,“发表评论”按钮在chrome8“飞”起来了。
能用原生的就用原生,节省资源
个人觉的,效率什么的问题根本不算什么,只要页面里加载的标签数没有上千数量级和频繁的操作dom的话,那点效率损耗根本不算什么,目前来看,一般的脚本,在IE6下运行速度是最慢的,有时IE6比I8能快一点点不知道是不是IE8个不同版本补丁造成的差异,你说的$(this)我一直在用,用到最多的就是each方法里的,因为很多时候遍历的都仅仅是个不带任何属性的标签,需要给它们注册个什么事件,比如table的行点击什么的,你说的这个又仅仅是单个标签的操作,根本看不出来差异,不过养成优化代码的习惯还是很重要的