JQuery的方法重载,方法设置和获取值一般使用相同名称的方法,当一个方法用来设置一个值的时候称之为Setter,当一个方法用来获取一个值的时候称之为Getter 。在选择器中Setter对所有的元素都有效,而Getter只能获取选择器中的第一个元素的值。
$( "h1" ).html( "hello world" );
|
Setter返回的是一个JQuery对象,它允许你继续在选择器上调用JQuery方法,而Getter返回的是请求的值,因此你不能继续调用JQuery方法在一个Getter的返回值上。
$( "h1" ).html().addClass( "test" );
|
如果你在选择器上调用一个方法,并且该方法返回的是一个JQuery对象,你可以继续调用JQuery方法在这个对象上,没有分号暂停,这种做法被称之为“Chaining”。
$( "#content" ).find( "h3" ).eq( 2 ).html( "new text for the third h3!" ); |
它可以增强代码的可读性。
.html( "new text for the third h3!" );
|
JQuery提供.end()方法,可以在选择器链的中间返回到最原始的那个选择器。
.html( "new text for the third h3!" )
.html( "new text for the first h3!" );
|
Chaining是一个非常强大的功能,自从JQuery开始流行,很多的库都应用了这一功能。然而这一功能我们必须谨慎使用,大量的使用Chaining会导致代码难以修改和调试。由于没有应用于Chaining的规范,大量的使用它会得意忘形。