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>