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>