jQuery Ajax之load()方法

來源:互聯網
上載者:User

load()方法是jQuery中最為簡單和常用的Ajax方法,能載入遠程HTML代碼並插入到DOM中。它的文法結構為:

  load( url [, data][, callback] )

  load()方法參數解釋見下表:

參數名稱 類 型 說  明
url String 請求HTML頁面的URL地址
data(可選) Object 發送至伺服器的key/value資料
callback(可選) Function 請求完成時的回呼函數,無論請求成功或失敗

1、 載入HTML文檔
首先建立一個名為test.html的HTML檔案,為後台Ajax載入做準備。代碼如下:

複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<div class="comment">
已有評論:
</div>
<div class="comment">
<h6>張三:</h6>
<p class="para">沙發。</p>
</div>
<div class="comment">
<h6>李四:</h6>
<p class="para">板凳。</p>
</div>
<div class="comment">
<h6>王五:</h6>
<p class="para">地板。</p>
</div>
</body>
</html>

然後建立一個空白頁面,在上面添加兩個元素:<button>按鈕用來觸發Ajax事件,id為“resText”的元素用來顯示追加的HTML內容。接下來就是編寫jQuery代碼了。等DOM元素載入完畢,通過單擊id為“send”的按鈕來調用laod()方法,然後將test.html的內容載入到id為“resText”的元素裡。那麼代碼如下: 複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="/jquery-1.3.2.js" ></script>
</head>
<body>

<input type="button" id="send" value="Ajax擷取" />
<div id="resText"></div>

<script type="text/javascript"><!--
$(document).ready(function(){
$("#send").click(function(){
$("#resText").load("test.html");
});
});
// --></script>

</body>
</html>

當按鈕被單擊後,出現如的介面:

  
顯然,load()方法完成了原本很繁瑣的工作。開發人員只需要使用jQuery選取器為HTML片段指定目標位置,然後將要載入的檔案的URL作為參數傳遞給load()方法即可。
2、 篩選載入的HTML文檔
  上個例子是將test.html頁面的內容都載入到id為“resText”的元素裡。如果只需要載入test.html頁面內的某些元素,那麼可以使用load()方法的URL參數來達到目的。通過為URL參數指定選擇符,可以很方便地從載入過來的HTML文檔裡篩選出所需要的內容。
  load()方法的URL參數的文法結構為:“url selector”。注意,URL和選取器之間有一個空格。
  例如只需要載入test.html頁面中class為“para”的內容,可以使用以下代碼來完成:
  $("#resText").load("test.html .para");
  運行效果則如:


3、 傳遞方式
  load()方法的傳遞方式根據參數data來自動指定。如果沒有參數傳遞,則採用GET方式傳遞;反之,則自動轉換為POST方式。

複製代碼 代碼如下://無參數傳遞,則是GET方式
$("#resText").load("test.php",function(){
//......
});
//有參數傳遞,則是POST方式
$("#resText").load("test.php",{name:"xht555",age:"24"},function(){
//......
});

4、 回調參數
  對於必須在載入完成後才能繼續的操作,load()方法提供了回呼函數(callback),該函數有三個參數,分別代表請求返回的內容、請求狀態和XMLHttpRequest對象,jQuery代碼如下: 複製代碼 代碼如下:$("#resText").load("test.html",function(responseText,textStatus,XMLHttpRequest){
//responseText:請求返回的內容
//textStatus:請求狀態:success、error、notmodified、timeout這4種
//XMLHttpRequest:XMLHttpRequest對象
});

  注意:在load()方法中,無論Ajax請求是否成功,只要當請求完成(complete)後,回呼函數(callback)就被觸發。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.