jQuery入门:用包装集工作(Working with Selections)

获取函数和设值函数

一些jQuery方法对于某些包装集既能赋值也能读取。当这个方法和参数值一起调用的时候,它被称为设值函数因为它设置了(或指派了)值。当这个方法没有和参数一起调用,它获取(或读取)元素的值。设值函数会影响包装集中的所有元素,然而获取函数返回的仅仅是包装集中第一个元素的值,.text()是个例外, 它取回所有元素的值。

//.html()方法设置所有h1元素的html为“hello world”:
$( "h1" ).html( "hello world" );

// The .html() method returns the html of the first h1 element:
//.html()方法返回第一个h1元素的html:
$( "h1" ).html();
// > "hello world"

设值函数返回一个jQuery对像,允许在包装集中继续调用jQuery方法。取值函数返回它们请求的值,所以在取值函数返回值中是不能继续调用jQuery方法的。

//试图在调用取值函数后调用jQuery方法。
//这将无法运行:
$( "h1" ).html().addClass( "test" );

链式处理程序法

如果你在包装集中调用一个方法并且这个方法返回一个jQuery对象,你可以在这个对象中继续调用jQuery方法,没必要用分号中断。这种惯例被称作“链式处理程序法”:

$( "#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!" );

链式处理程序法非凡的强大,自从它在jQuery中被广泛应用,是很多库都适用的一个特征。可是,它必须要谨慎使用——过量的链式处理程序法会让代码变得非常难以修改或者调试。链应该有多长没有必须遵守的规则——仅仅知道它很容易让人迷恋。

原文地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值