1. 程式人生 > >從零開始學 Web 之 jQuery(一)jQuery的概念,頁面載入事件

從零開始學 Web 之 jQuery(一)jQuery的概念,頁面載入事件

一、jQuery的概念

1、什麼是 JavaScript 庫?

JavaScript 開發的過程中,處理瀏覽器的相容很複雜而且很耗時,於是一些封裝了這些操作的庫應運而生。這些庫還會把一些常用的程式碼進行封裝。

把一些常用到的方法寫到一個單獨的 js 檔案,使用的時候直接去引用這js檔案就可以了,這個 js 檔案就是 JavaScript 庫。(比如我們自己寫的 common.js 就是一個 js 庫。)

2、常見的 JS 庫

常見的JavaScript 庫:jQuery、Prototype、MooTools。其中jQuery是最常用的一個。

3、什麼是 jQuery?

jQuery 就是一個 JavaScript 函式庫,沒有什麼特別的。裡面封裝了一大堆的方法方便我們的開發,其實就是一個加強版的 common.js。因此我們學習jQuery,其實就是學習jQuery這個 js 檔案中封裝的一大堆方法。

4、jQuery 能做什麼?

jQuery 本身就是一堆 JavaScript 函式,JavaScript 是做什麼的,jQuery 就是做什麼的。畢竟 jQuery 知識 JavaScript 編寫的函式庫而已,有些功能 jQuery 沒有封裝,則還需要通過自己寫原生 JavaScript 來實現。

5、為什麼要學 jQuery?

jQuery設計的宗旨是 ' Write Less,Do More ',即倡導寫更少的程式碼,做更多的事情。

它封裝JavaScript常用的功能程式碼,提供一種簡便的操作,優化 HTML 文件操作、事件處理、動畫設計和 Ajax 互動。

jQuery的核心特性可以總結為:

  • 具有獨特的鏈式語法和短小清晰的多功能介面;
  • 具有高效靈活的css選擇器,並且可對CSS選擇器進行擴充套件;
  • 擁有便捷的外掛擴充套件機制和豐富的外掛。
  • 相容各種主流瀏覽器。

極大地簡化了 JavaScript 程式設計。

6、jQuery下載

二、jQuery 的頂級物件

jQuery 中的頂級物件是:jQuery,可以使用$ 代替。

jQuery中所有屬性和方法都可以使用$.屬性或方法 的方式來使用。

大多數情況下,jQuery 中幾乎都是方法,屬性很少。

三、jQuery物件和DOM物件互轉

注意:通過 DOM 方式和 jQuery 方法獲取的同一個元素,不是相同的物件。

存在的問題:DOM物件呼叫jQuery的方法不能實現,jQuery物件呼叫DOM的方法也不能實現。所以要將DOM物件和jQuery物件互轉。

DOM物件轉jQuery物件:$(DOM物件)

jQuery物件轉DOM物件:jQuery物件[0]

為什麼 DOM 和 jQuery 要互轉,最開始就用 jQuery不好嗎?

因為有一些相容或功能沒有封裝在 jQuery 裡面,必須通過原生 js 操作,所以需要 jQuery物件轉DOM物件。當這一步操作完之後,再次轉回 jQuery 物件,可以更方便的操作頁面元素。

1、案例:網頁開關燈(使用類選擇器方式)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .cls {
            background-color: #000;
        }
    </style>
</head>
<body>

<input type="button" value="開/關" id="btn">

<script src="common.js"></script>
<script src="jquery-1.12.4.js"></script>
<script>
    // DOM原生方式
    document.getElementById("btn").onclick = function (ev) {
        if(document.body.className !== "cls") {
            document.body.className = "cls";
        } else {
            document.body.className = "";
        }
    }

    // jQuery轉DOM方式
    $("#btn").click(function () {
        if ($("body")[0].className === "cls") {
            $("body")[0].className = "";
        } else {
            $("body")[0].className = "cls";
        }
    });

    // jQuery方式
    $("#btn").click(function () {
        if ($("body").hasClass("cls")) {
            $("body").removeClass("cls");
        } else {
            $("body").addClass("cls");
        }
    });

</script>
</body>
</html>

1、jQuery的方方式繫結事件沒有 on

2、className 是DOM物件的方法,jQuery不能呼叫。

3、hasClass 是否有某個類;removeClass 移除某個類;addClass 增加一個類。

2、案例:網頁開關燈(使用CSS方式)

$("#btn").click(function () {
  if($(this).val() === "關燈") {
    $("body").css("backgroundColor", "#000");
    $(this).val("開燈");
  } else {
    $("body").css("backgroundColor", "");
    $(this).val("關燈");
  }
});

1、this 是 DOM 的屬性,所以要轉成 jQuery 屬性。

2、jQuery 控制 css 樣式使用 css("屬性名字","屬性值")方法,屬性的名字可以是DOM中的寫法(比如:backgroundColor),可也以使用css樣式寫法(比如:background-color)。

3、jQuery物件.val();表示獲取該物件 value 屬性的值;

4、jQuery物件.val("值");表示設定該物件 value 屬性的值;

四、頁面載入事件

1、DOM中頁面載入事件

window.onload = function (ev) {
  console.log("1");
};
window.onload = function (ev) {
  console.log("2");
};

由於這是賦值的方式,所以只會列印第二個,第一個被覆蓋了。

特點:整個頁面的所有元素,文字,圖片等全部載入完才會執行。

2、jQuery中頁面載入事件

2.1、方式一:DOM轉jQuery方式

$(window).load(function () {
  console.log("load:1");
});
$(window).load(function () {
  console.log("load:2");
});

load:1 和 load:2 都會列印,因為這相當於方法呼叫,呼叫多少次執行多少次。

特點:整個頁面的所有元素,文字,圖片等全部載入完才會執行。

2.2、方式二:DOM轉jQuery方式

$(document).ready(function () {
  console.log("ready:1");
});
$(document).ready(function () {
  console.log("ready:2");
});

ready:1 和 ready:2 都會列印。

特點:不是整個頁面的所有元素,而是頁面中的基本元素載入完後就執行,所以比使用 load 的方式快一些。

2.3、方式三:jQuery方式(推薦)

$(function () {
  console.log("jQuery:1");
});
$(function () {
  console.log("jQuery:2");
});

jQuery:1 和 jQuery:2 都會列印。

$ 也可以換成 jQuery。

特點:不是整個頁面的所有元素,而是頁面中的基本元素載入完後就執行,所以比使用 load 的方式快一些。

相關推薦

開始 Web CSS3CSS3概述選擇器

https 兼容問題 3.1 線性 web前端 不同 錨點 splay lock 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔

開始 Web HTML5HTML5概述語義化標籤

一、HTML5簡介 1、什麼是html5 html5 不是一門新的語言,而是我們之前學習的 html 的第五次重大修改版本。 2、html的發展歷史 超文字標記語言(第一版,不叫 HTML 1.0)——在1993年6月作為網際網路工程工作小組(IETF)工作草案發布(並非標準); HTML 2.0——19

開始 Web AjaxjQuery中的Ajax

var 技術分享 else parse cnblogs 我會 clas alt jquer 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web

開始 Web DOMDOM的概念對標簽操作

關註 1.5 pan 什麽 tin p標簽 nod text == 大家好,這裏是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關註。在這裏我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,

開始 Web AjaxAjax 概述快速上手

lan 技術分享 php 概述 由於 val asc logs 更新 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:ht

開始 Web HTML5表單多媒體新增內容新增獲取操作元素自定義屬性

器) user 對比 style 按鈕 ont mp3 url -- 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:ht

開始 Web CSS選擇器

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 W

開始 Web CSS3顏色模式文字陰影盒模型邊框圓角邊框陰影

一、顏色模式 顏色模式有兩種: RGBA rgba(0,0,0,0.5); //黑色,透明度0.5 HSLA(顏色(0~360),飽和度(0%~100%),明度(0%~100%),透明度(0~1)) 紅橙黃綠青藍紫紅:顏色從 0~360 順序,各佔30度。比如紅色為0,黃色為120,綠色為240。

開始 Web CSS3動畫animationWeb字型

大家好,這裡是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 部落格園:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/

開始 Web DOMDOM的概念對標籤操作

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 一、DOM概念 D

開始 Web BOMBOM的概念一些BOM物件

大家好,這裡是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... +------------------------------------------------------------ github:https://github.com/Daotin/Web 微信公眾號:Web前端之

開始 Web HTML認識前端

大家好,這裡是 Daotin 從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 1、什麼是前端 前端對於網站來說,

開始 Web JavaScriptJavaScript概述

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 一、JavaScr

開始 Web Ajax伺服器相關概念

一、伺服器和客戶端 伺服器和客戶端都是電腦,在硬體層面上沒有明顯的劃分,配置很差的個人電腦任然可以作為伺服器。 伺服器如果想對外提供服務,必須安裝相應的軟體,所以不是伺服器這臺電腦可以提供服務,而是其安裝的軟體提供的服務。比如: HTTP網頁服務:Apache,Tomcat,IIS等 檔案上傳下載服務:V

開始 Web ES6ES5嚴格模式

一、ECMAScript 5 嚴格模式 1、概述 除了正常執行模式,ECMAscript 5添加了第二種執行模式:"嚴格模式"(strict mode)。顧名思義,這種模式使得Javascript在更嚴格的條件下執行。 2、目的 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為;

開始 Web CSS3邊框圖片過渡

一、邊框圖片 邊框圖片:就是給邊框加圖片背景。 我們之前加的邊框都是純顏色的邊框,那麼我們怎麼給邊框加圖片呢? 原理:把一張圖片分成九宮格的形式,然後一一對應到需要新增邊框的元素上。 並且,新增邊框圖片是以背景的方式新增的,所以會有可能文字覆蓋在邊框的情況,後面也會介紹處理方法。 語法: /* bord

開始 Web DOM節點

def clas scrip while p標簽 設置 ner 操作 text 大家好,這裏是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關註。在這裏我會從 Web 前端零基礎開始,一步步學習 Web 相

開始 Web BOMoffsetscroll變速動畫函數

樣式 清理 java mar dde sof mov har width 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:

開始 Web Ajax同步異步請求數據格式

遊記 document 空閑 name center 20px 實現 resp 也會 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之

開始 Web ES6ES6基礎語法

arr 方法 foreach reac 公眾 存在 lock 數組名 回調函數 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博