JQuery官方学习资料(译):选择器的运作

 

  • Getters 和 Setters
    JQuery的方法重载,方法设置和获取值一般使用相同名称的方法,当一个方法用来设置一个值的时候称之为Setter,当一个方法用来获取一个值的时候称之为Getter 。在选择器中Setter对所有的元素都有效,而Getter只能获取选择器中的第一个元素的值。
// 这个.html()方法被作为setter:
$( "h1" ).html( "hello world" );
// 这个.html()方法被作为getter:
$( "h1" ).html();
    Setter返回的是一个JQuery对象,它允许你继续在选择器上调用JQuery方法,而Getter返回的是请求的值,因此你不能继续调用JQuery方法在一个Getter的返回值上。
这是一个错误示例:
$( "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!" );
    JQuery提供.end()方法,可以在选择器链的中间返回到最原始的那个选择器。
$( "#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的规范,大量的使用它会得意忘形。
posted @ 2013-08-30 08:33  M守护神  阅读(401)  评论(0编辑  收藏  举报