作者scribeTW (scribe)
看板Ajax
标题Re: [问题] Jquery Find的效能
时间Thu Oct 21 14:21:33 2010
※ 引述《Futurend (未来)》之铭言:
: 假如说我有一个div叫做 divContent
: 我今天想要找一个input,我知道他在divContent下面
: 那我有三种方法可以取得他
: 1) $('#inputId');
: 2) var $content = $('#divContent');
: $content.find('#inputId');
: 3) var $content = $('#divContent');
: $('#inputId', $content');
: 後面两种方法的效能我猜测应该是优於第一种
: 但2跟3这两个方法哪种效能比较好呢
: 或着有其他更好的写法
: 请前辈指点了
其实第1种是最快的。
理由是有ID值,jQuery直接就会用document.getElementById()取得,
这是浏览器原生函数,速度最快。
再来jQuery的原始码其实 $(expr, content) = $(content).find(expr),
不过前者其实还有经过许多判断,所以後者还比较快一些些。(少一些判断流程)
结论:1 > 2 > 3
另外推文提到的$('
#divContent #inputId'),等同於
$(document).find('
#divContent #inputId')。
---
想知道真的是看jQuery释出的未压缩Development Source Code最快。
你会看到里面有很多注解。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.141.43.100
※ 编辑: scribeTW 来自: 220.141.43.100 (10/21 14:29)
1F:推 tomin:所以推文提到的速度呢?比2慢吗?画蛇添足? 10/21 15:37
2F:→ chrisQQ:好像也是,有ID的话干麽用两层,一般都是 class name 吧 10/21 16:34