Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
法: $.ajax([settings]);
php作為后臺的處理過程
ajax參數詳解:
data
類型:String
發送到服務器的數據。將自動轉換為請求字符串格式。GET 請求中將附加在 URL 后。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。
dataFilter
類型:Function
給 Ajax 返回的原始數據的進行預處理的函數。提供 data 和 type 兩個參數:data 是 Ajax 返回的原始數據,type 是調用 jQuery.ajax 時提供的 dataType 參數。函數返回的值將由 jQuery 進一步處理。
dataType
類型:String
預期服務器返回的數據類型。如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML。在 1.4 中,JSON 就會生成一個 JavaScript 對象,而 script 則會執行這個腳本。隨后服務器端返回的數據會根據這個值解析后,傳遞給回調函數。可用值:
"xml": 返回 XML 文檔,可用 jQuery 處理。
"html": 返回純文本 HTML 信息;包含的 script 標簽會在插入 dom 時執行。
"script": 返回純文本 JavaScript 代碼。不會自動緩存結果。除非設置了 "cache" 參數。注意:在遠程請求時(不在同一個域下),所有 POST 請求都將轉為 GET 請求。(因為將使用 DOM 的 script標簽來加載)
"json": 返回 JSON 數據 。
"jsonp": JSONP 格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數名,以執行回調函數。
"text": 返回純文本字符串
error
類型:Function
默認值: 自動判斷 (xml 或 html)。請求失敗時調用此函數。
有以下三個參數:XMLHttpRequest 對象、錯誤信息、(可選)捕獲的異常對象。
如果發生了錯誤,錯誤信息(第二個參數)除了得到 null 之外,還可能是 "timeout", "error", "notmodified" 和 "parsererror"。
這是一個 Ajax 事件。
global
類型:Boolean
是否觸發全局 AJAX 事件。默認值: true。設置為 false 將不會觸發全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。
ifModified
類型:Boolean
僅在服務器數據改變時獲取新數據。默認值: false。使用 HTTP 包 Last-Modified 頭信息判斷。在 jQuery 1.4 中,它也會檢查服務器指定的 'etag' 來確定數據沒有被修改過。
jsonp
類型:String
在一個 jsonp 請求中重寫回調函數的名字。這個值用來替代在 "callback=?" 這種 GET 或 POST 請求中 URL 參數里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 會導致將 "onJsonPLoad=?" 傳給服務器。
jsonpCallback
類型:String
為 jsonp 請求指定一個回調函數名。這個值將用來取代 jQuery 自動生成的隨機函數名。這主要用來讓 jQuery 生成度獨特的函數名,這樣管理請求更容易,也能方便地提供回調函數和錯誤處理。你也可以在想讓瀏覽器緩存 GET 請求的時候,指定這個回調函數名。
password
類型:String
用于響應 HTTP 訪問認證請求的密碼
processData
類型:Boolean
默認值: true。默認情況下,通過data選項傳遞進來的數據,如果是一個對象(技術上講只要不是字符串),都會處理轉化成一個查詢字符串,以配合默認內容類型 "application/x-www-form-urlencoded"。如果要發送 DOM 樹信息或其它不希望轉換的信息,請設置為 false。
scriptCharset
類型:String
只有當請求時 dataType 為 "jsonp" 或 "script",并且 type 是 "GET" 才會用于強制修改 charset。通常只在本地和遠程的內容編碼不同時使用。
success
類型:Function
請求成功后的回調函數。
參數:由服務器返回,并根據 dataType 參數進行處理后的數據;描述狀態的字符串。
這是一個 Ajax 事件。
traditional
類型:Boolean
如果你想要用傳統的方式來序列化數據,那么就設置為 true。請參考工具分類下面的 jQuery.param 方法。
timeout
類型:Number
設置請求超時時間(毫秒)。此設置將覆蓋全局設置。
type
類型:String
默認值: "GET")。請求方式 ("POST" 或 "GET"), 默認為 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
url
類型:String
默認值: 當前頁地址。發送請求的地址。
username
類型:String
用于響應 HTTP 訪問認證請求的用戶名。
xhr
類型:Function
需要返回一個 XMLHttpRequest 對象。默認在 IE 下是 ActiveXObject 而其他情況下是 XMLHttpRequest 。用于重寫或者提供一個增強的 XMLHttpRequest 對象。這個參數在 jQuery 1.3 以前不可用。
訪問jQuery官方網站(http://jquery.com),如圖1-1所示。
jQuery官方網站
在頁面上方可以看到Download jQuery按鈕,該按鈕上的v3.3.1是jQuery當前最新版本的版本號,單擊該按鈕后,進入下載頁面。
為了獲取其他版本的jQuery,在下載頁面的下半部分找到https://code.jquery.com鏈接,獲取jQuery所有版本的下載鏈接地址,如圖2所示。
圖2 獲取jQuery下載地址
單擊圖2中標示出的鏈接,進入jQuery所有版本的下載頁面,即可看到jQuery1.12.4版本的jQuery文件下載鏈接,如圖3所示。
圖3 jQuery 1.12.4壓縮版和未壓縮版
從圖l-3中可以看出,jQuery文件的類型主要包括未壓縮(uncompressed)的開發版和壓縮(minified)后的生產版。它們的區別在于,壓縮版本是將jQuery文件中的空白字符、注釋、空行等與邏輯無關的內容刪除,并進行一些優化,使得文件體積減小,加載速度比未壓端版快。而未壓縮版本的代碼可讀性更好,所以建議讀者在學習期間選擇未壓縮版本。
在項目中引入jQuery時,只需要把下載好的jQuery文件保存到項目目錄中,在項目的HTML文件中使用標簽引入即可。示例代碼如下。
<!--引入本地下載的jQuery-->
<script src="jquery-1.12.4.js"></script>
許多網站提供了靜態資源公共庫,通過CDN(內容分發網絡)可以提高jQuery的下載速度。示例代碼如下。
節我們學習如何使用 jQuery 中的方法來添加和刪除 HTML 元素。
jQuery 中用于添加 HTML 元素的方法有如下幾種:
方法 | 描述 |
append() | 在所選元素的末尾插入內容 |
prepend() | 在選定元素的開頭插入內容 |
after() | 在選定元素后插入內容 |
before() | 在選定元素之前插入內容 |
而用于刪除元素的方法有:
方法 | 描述 |
remove() | 刪除被選元素容,包括子元素 |
empty() | 刪除被選元素的所有子節點和內容 |
append() 方法可以在指定元素的末尾插入內容。
語法如下:
$(selector).append(content,function(index,html))
我們來看下面這個例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery_俠課島(9xkd.com)</title>
<script src="jquery-3.5.1.min.js"></script>
<script>
$(function(){
$("button").click(function(){
$("p").append("俠課島");
});
});
</script>
</head>
<body>
<p>你好,我的名字叫做:</p>
<button>點擊追加文本</button>
</body>
</html>
點擊按鈕,在指定的 <p> 標簽末尾添加文本內容 “俠課島”,我們可以在瀏覽器中看一下演示結果:
除了文本內容,我們還可以在元素中添加 HTML :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery_俠課島(9xkd.com)</title>
<script src="jquery-3.5.1.min.js"></script>
<script>
$(function(){
$("button").click(function(){
$("ul").append("<li>strawberry</li>");
});
});
</script>
</head>
<body>
<ul>
<li>apple</li>
<li>pear</li>
<li>peach</li>
<li>watermelon</li>
</ul>
<button>點擊追加文本</button>
</body>
</html>
在瀏覽器中的演示結果:
prepend() 方法其實和 append() 方法類似,語法也差不多。但是 prepend() 方法主要用于在被選元素的開頭插入指定內容。
語法如下:
$(selector).prepend(content,function(index,html))
我們將上述示例中的 append() 方法改成 prepend() 方法:
$(function(){
$("button").click(function(){
$("ul").prepend("<li>strawberry</li>");
});
});
然后看一下在瀏覽器中的演示結果:
after() 方法用于在被選元素后插入指定的內容。看起來 after() 方法和 append() 方法的作用好像差不多,但是其實兩個方法還是有區別的。 append() 方法是在被選元素的結尾插入內容,插入的內容仍然在元素內部。而 after() 插入的內容會重新起一行,與被選擇的元素并沒有什么邏輯上的聯系。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery_俠課島(9xkd.com)</title>
<script src="jquery-3.5.1.min.js"></script>
<script>
$(function(){
$("button").click(function(){
$("p").after("<p>俠課島</p>");
});
});
</script>
</head>
<body>
<p>你好,我的名字叫做:</p>
<button>點擊追加文本</button>
</body>
</html>
在瀏覽器中的演示效果:
before() 方法用于在被選元素之前插入指定的內容。它和 prepend() 方法的區別在于一個在被選元素內插入內容,一個在被選元素外。
注意 before() 方法和 after() 方法都是在被選元素外插入內容。append() 和 prepend() 方法都是在被選元素內插入內容。
例如將上述示例中的方法改為 before:
$(function(){
$("button").click(function(){
$("p").before("<p>俠課島</p>");
});
});
在瀏覽器中的演示效果:
remove() 方法用于刪除被選元素及其子元素。該方法也會刪除被選元素的數據和事件。
例如下面這個例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery_俠課島(9xkd.com)</title>
<script src="jquery-3.5.1.min.js"></script>
<script>
$(function(){
$("button").click(function(){
$("p").remove();
});
});
</script>
</head>
<body>
<p>你好,歡迎來到俠課島!</p>
<button>點擊刪除</button>
</body>
</html>
在瀏覽器中的演示效果:
從上圖中可以看到,remove() 方法將指定的 p 元素連標簽帶元素全部刪除。
empty() 方法用于刪除被選元素的所有子節點和內容。該方法不會移除元素本身,或它的屬性。
我們講上述示例中的 remove() 方法改為empty() 方法,看看有什么不同:
$(function(){
$("button").click(function(){
$("p").empty();
});
});
在瀏覽器中的演示效果:
可以看到 empty() 方法只會刪除指定元素中的內容,不會刪除元素本身,當然如果元素上有屬性,屬性也不會被刪除,大家可以自己試一下。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。