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