前几天看到一篇文章《14 Helpful jQuery Tricks, Notes, and Best Practices》感觉很不错,非常时候我这种入门级的人员,所以看懂一条翻译一条,
jQuery方法总是返回jQuery对象:
所以我们可以这样写(链式调用):
[code=”javascript”]
$someDiv.attr(‘class’,?’someClass’).hide().html(‘new?stuff’);
[/code]
为了美观易读也可以这样写:
[code=”javascript”]
$someDiv
.attr(‘class’,?’someClass’)
.hide()
.html(‘new?stuff’);
[/code]
再来看下面的例子:
[code=”javascript”]
var?someDiv?=?$(‘#someDiv’);
someDiv.hide();
[/code]
我们定义的一个元素将隐藏掉,我们可以将代码简化成:
[code=”javascript”]
var?someDiv?=?$(‘#someDiv’).hide();
[/code]
jquery这个特性可以减少我们遍历整个DOM的次数。我们就不用一次次的去遍历整个DOM。
当然还有一种写法,比如:
[code=”javascript”]
var?elem?=?$(‘#elem’);
elem.hide();
elem.html(‘bla’);
elem.otherStuff();
[/code]
虽然这种写法很难看,没使用点语法,但是从性能角度上说,他也是很优化的,因为他只遍历了一次dom,获取jq对象,并把值赋给了elem。在一些特殊的场合你也可以这么使用。
这就是jQuery的链式表达式,我之前写代码都是先绑定完了事件,然后再赋值给一个变量,以方便以后使用。
我最近封装的代码方法,也学着return 个this用,也实现了链式调用函数的方式
var someDiv = $(‘#someDiv’);
这种写法是错误的吧,既然返回的是对象,那么应当是这样
var $someDiv=$(‘#someDiv’);