1. 程式人生 > >jQuery學習筆記:基礎

jQuery學習筆記:基礎

本文主要總結jQuery中一些知識點

概念

美元符號$是著名的jQuery符號。jQuery把所有功能全部封裝在一個全域性變數jQuery中,而$也是一個合法的變數名,它是變數jQuery的別名

$本質上就是一個函式,但是函式也是物件,於是$除了可以直接呼叫外,也可以有很多其他屬性

選擇器

層級選擇器

查詢和過濾

操作DOM

  • 修改Text和Html:呼叫jQuery物件的 text( ) 和 html( ) 方法分別獲取節點和原始Html文字
  • 修改CSS:呼叫jQuery物件的 css('name', 'value')
  • 顯示和隱藏DOM:呼叫jQuery物件的 hide( ) 和 show( )
  • 獲取DOM資訊:呼叫jQuery物件的 attr( )   removeAttr( )  prop( )  is( )
  • 操作表單:呼叫jQuery物件的val( )

事件

 用on方法來繫結一個事件,需要傳入事件名稱和應對的處理函式

var a = $('#test-link');
a.on('click', function () {
    alert('Hello!');
});

或者用簡化的寫法直接呼叫 click( ) 

a.click(function () {
    alert('Hello!');
});

 初始化程式碼必須放到 document 物件的 ready 事件中,保證DOM已完成初始化:

<html>
<head>
    <script>
        $(document).on('ready', function () {

        });
    </script>
</head>
<body>
    <form id="testForm">
        ...
    
</form> </body>

由於 ready 事件使用非常普遍,所以可以簡化:

$(document).ready(function () {

});

甚至可以再簡化為:

$(function () {
    // init...
});

 

AJAX

jQuery在全域性物件jQuery(也就是$)幫頂了 ajax( ) 函式,可以處理AJAX請求

 ajax(url, settings) 函式需要接收一個url和一個可選的 settings 物件,常用的選項如下:

  • async:是否非同步,預設true,非特殊不要指定為false
  • method:傳送的Methode,預設為'GET',可指定為'POST'或'PUT'等
  • contentType:傳送POST請求的格式,預設值為'application/x-www-form-urlencoded; charset=UTF-8',也可以指定為'text/plain' 或 'application/json'
  • data:傳送的資料,型別可以是字串、陣列或oject。如果是GET請求,data將被轉換成query附加到URL上,如果是POST請求,根據contentType把data序列化成合適的格式
  • headers:傳送額外的HTTP頭,必須是一個object
  • dataType:接收的資料格式,可以指定為'html'  'xml'  'json'  'text'等,預設情況根據響應的content-Type猜測

下面是一個傳送GET請求,並返回一個JSON格式的資料

var jqxhr = $.ajax('/api/categories', {
    dataType: 'json'
});

jQuery的jqXHR物件類似一個Promise物件,我們可以用鏈式寫法來處理各種回撥:

var jqxhr = $.ajax('/api/categories', {
    dataType: 'json'
}).done(function (data) {
    ajaxLog('成功, 收到的資料: ' + JSON.stringify(data));
}).fail(function (xhr, status) {
    ajaxLog('失敗: ' + xhr.status + ', 原因: ' + status);
}).always(function () {
    ajaxLog('請求完成: 無論成功或失敗都會呼叫');
});

 最後可以寫成這樣

$.ajax('${base}/apply/save', {
    method: 'POST',
    data: {'type': type, 'expo': expo},
    dataType: 'json'
})
    .done(function (data) {
        // done
    })
    .fail(function (xhr, status) {
        console.log('fail: ' + xhr.status + ' reason:' + status);
    })
    .always(function () {
        // done
    });

 

  

(非原創 侵刪 文章來源:https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000)