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>