jQuery 链接

在本教程中,你将学习如何在 jQuery 中链接多个方法。

jQuery 方法链接

jQuery 提供了另一个称为方法链的强大功能,它允许我们对同一组元素执行多个操作,所有这些操作都在一行代码中。

这是可能的,因为大多数 jQuery 方法返回一个 jQuery 对象,可以进一步用于调用另一个方法。这是一个例子。

<script type="text/javascript">
$(document).ready(function(){
    $("button").click(function(){
        $("p").animate({width: "100%"}).animate({fontSize: "46px"}).animate({borderWidth: 30});
    });
});  
</script>

上面的例子展示了三种 animate() 方法的链接。当用户单击触发按钮时,它会将 <p> 宽度扩展为 100%。一旦 width 完成更改,font-size 就开始动画,完成后 border 动画将开始。

提示: 链接方法不仅可以帮助你保持简洁的 jQuery 代码,而且还可以提高脚本的性能,因为浏览器不必多次查找相同的元素来执行某些操作。

你还可以将一行代码分成多行,以提高可读性。例如,上例中的方法序列也可以写成:

<script type="text/javascript">
$(document).ready(function(){
    $("button").click(function(){
        $("p")
            .animate({width: "100%"})
            .animate({fontSize: "46px"})
            .animate({borderWidth: 30});
    });
});
</script>

一些 jQuery 方法不返回 jQuery 对象。通常, setter(即为选择来赋值的方法)返回一个 jQuery 对象,允许你继续在选择上调用 jQuery 方法。然而, getter 返回请求的值,因此你无法继续对 getter 返回的值调用 jQuery 方法。

此方案的典型示例是 html() 方法。如果没有传递参数,则返回所选元素的 HTML 内容而不是 jQuery 对象。

<script type="text/javascript">
$(document).ready(function(){
    $("button").click(function(){
        // This will work
        $("h1").html("Hello World!").addClass("test");
        
        // This will NOT work
        $("p").html().addClass("test");
    });
});
</script>