jQuery詳解

jQuery

一、jQuery的簡介
    是一個輕量級的JS庫-是一個被封裝好的JS文件。提供了更爲簡便的頁面元素操做方式。

    封裝了 DOM,JS ,CSS

    核心理念:Write Less Do More
    
    官網:https://jquery.com/
    jQuery版本:
        jQuery 3.3.1
        jQuery 2.x :再也不支持IE6,7,8
        jQuery 1.11.x
二、使用jQuery
    一、引入jQuery文件
        <script src="jquery-1.11.3.js"></script>
        注意:引入的操做必需要放在其餘jQuery操做以前
    二、使用jQuery
        ... ...
三、jQuery對象
    一、什麼是jQuery對象
        jQuery對象是由jQuery對頁面元素進行封裝後的一種體現
        jQuery中所提供的全部操做都只針對jQuery對象,其餘對象不能用(如:DOM對象)
    二、工廠函數 - $()
        想要獲取jQuery對象 或 轉換爲jQuery對象的話,就必需要使用工廠函數
    三、DOM對象 和 jQuery對象之間的轉換
        DOM對象:以DOM的方式獲取出來的節點對象,都是DOM對象,DOM對象只能使用DOM中所提供的方法和屬性,是不能
訪問jQuery提供的屬性和方法

        jQuery對象:由jQuery封裝而獲得的對象。jQuery對象只能訪問jQuery提供的屬性和方法,是不能訪問DOM提供的屬性和 
方法

        一、將DOM對象轉換爲jQuery對象
            語法:var $obj=$(DOM對象);
            注意:在爲jQuery對象起名的時候,最好在變量名稱前 + $

        二、將jQuery對象轉換爲DOM對象
            一、var dom對象 = jQuery對象.get(0);
            二、var dom對象 = jQuery對象[0];

JS中建立對象

一、使用Object 直接建立對象
    var newObj = new Object();
    //添加屬性
    newObj.property1 = value1;
    newObj.property2 = value2;
    ... ...
    //添加方法
    newObj.method1 = function(){
        ... ...
    }

    newObj.method2 = function(arg){
        arg 就是參數
    }
二、使用構造器建立對象
    function 對象名(參數1,參數2,...){
        
        //只能使用this來訪問或建立當前對象的成員
        
        //使用參數爲屬性賦值
        this.屬性1 = 參數1;
        this.屬性2 = 參數2;
        //建立方法
        this.funName = function(){
            
        }
    }

    使用對象
    var obj1 = new 對象名(參數1,參數2);

三、使用JSON建立對象
    一、什麼是JSON
        JSON:JavaScript Object Notation - JS對象表現形式
        JSON一般會做爲輕量級的數據交換格式

        JSON通常表示只有屬性沒有方法的對象
    二、聲明JSON對象
        0、JSON對象使用{}來表示
        一、使用鍵值對的方式來聲明數據的
        二、全部的屬性,必須用""引發來,若是值是字符串的話,也必須用""引發來
        三、屬性 和 值 之間用 : 隔開
        四、多對屬性之間,使用 , 隔開

jQuery選擇器

一、做用
    獲取頁面上的元素們,返回jQuery對象所組成的數組
    語法:$("選擇器");
二、選擇器的分類
    一、基礎選擇器
        一、ID選擇器
            用法:$("#ID值");
            說明:返回HTML中指定ID值的元素
        二、類選擇器
            用法;$(".className");
            說明:返回HTML中全部class爲className的元素
        三、元素選擇器
            用法:$("元素名稱");
            說明:返回HTML中全部指定標記的元素
        四、通用選擇器
            用法:$("*");
            說明:返回HTML中全部的元素
        五、羣組選擇器
            用法:$("selector1,selector2,... ...")
            說明:返回知足工廠函數內全部選擇器的元素
    二、層級選擇器
        一、$("selector1 selector2")
                後代選擇器
        二、$("selector1>selector2")
                子代選擇器
        三、$("selector1+selector2")
            名稱:相鄰兄弟選擇器
            做用:匹配牢牢跟在selector1後面且知足selector2選擇器的元素
        四、$("selector1~selector2")
            名稱:通用兄弟選擇器
            做用:匹配selector1後面且知足selector2選   擇器的全部元素
    三、過濾選擇器
        一、基本過濾選擇器
            一、:first
                只匹配到一組元素中的第一個
            二、:last
                只匹配到一組元素中的最後一個
            三、:not(selector)
                在一組元素中,將知足selector的元素排除出去
            四、:odd
                匹配 偶數行 元素(奇數索引)
            五、:even
                匹配 奇數行 元素(偶數索引)
            六、:eq(index)
                匹配下標等於 index 的元素
                $("p:eq(0)").css();
            七、:gt(index)
                匹配下標大於 index 的元素
            八、:lt(index)
                匹配下標小於 index 的元素
        二、內容過濾選擇器
            一、:contains("text")
                匹配包含指定文本的元素
                $("p:contains('佳能')")
            二、:empty
                匹配空元素(不包含任何子元素以及文本)
            三、:has(selector)
                匹配含有指定選擇器的元素
            四、:parent
                匹配自己是父元素的元素
        三、可見性過濾選擇器
            一、:visible
                匹配全部的可見元素
            二、:hidden
                匹配全部不可見元素
        四、狀態過濾選擇器
            主要用在表單控件上
            一、:enabled
                匹配全部的可用元素
            二、:disabled
                匹配全部禁用元素
            三、:checked
                匹配全部被選中的元素(radio 和 checkbox)
            四、:selected
                匹配全部被選中的元素(select)
        五、子元素過濾選擇器
            一、:first-child
                匹配屬於其父元素中的第一個子元素
            二、:last-child
                匹配屬於其父元素中的最後一個子元素
            三、:nth-child(n)
                匹配屬於其父元素中的第n個子元素
    四、屬性選擇器
        使用元素的屬性來匹配頁面的元素
        一、[attr]
            匹配具備attr屬性的元素
            ex:
                一、匹配頁面中全部有id屬性的元素
                    $("[id]")
                二、匹配頁面中全部有class屬性的元素
                    $("[class]")
        二、[attr=value]
            匹配attr屬性值爲value的元素
            ex:匹配頁面中全部的文本框
                $(":text");
                $("input[type='text']")
        三、[attr!=value]
        四、[attr^=value]
            匹配attr屬性值是以value字符開始的元素們
        五、[attr$=value]
            匹配attr屬性值是以value字符結尾的元素們
        六、[attr*=value]
            匹配attr屬性值中包含value字符的元素們

jQuery 操做 DOM

一、基本操做
    一、html()
        等同於dom中的 innerHTML
        做用:讀取或設置jQuery對象中的HTML內容
    二、text()
        等同於dom中的 innerText
        做用:讀取或設置jQuery對象中的普通文本內容
    三、val()
        等同於dom中的 value
        做用:讀取或設置jQuery對象的value值(表單)
    四、屬性操做
        一、attr()
            做用:讀取或設置jquery對象的屬性值
            ex:
                $("#main").attr("id");
                $("#main").attr("class","redBack");
        二、removeAttr(attrName)
            做用:刪除jQuery對象的指定屬性
二、樣式操做
    一、attr("class","className")
        爲元素動態綁定class屬性值
    二、$obj.addClass("className")

        $obj.addClass("c1").addClass('c2').addClass('c3').html("測試的文本");
    三、removeClass("className")
        刪除指定的類選擇器
    四、removeClass()
        刪除全部的類選擇器
    五、toggleClass("className")
        切換樣式
         元素若是具有className選擇器,則刪除
         元素若是沒有className選擇器,則添加
    六、hasClass("className")
        判斷元素是否包含className選擇器
    七、css("屬性","值")
        爲元素動態的設置某css屬性極其值
        $obj.css("background-color","red");
    八、css(JSON對象)
        $obj.css({
            "color":"red",
            "font-size":"32px",
            "text-decoration":"underline"
        });
三、遍歷節點
    一、children() / children(selector)
        獲取jQuery對象的全部子元素或帶有指定選擇器的子元素
        注意:只考慮子元素不考慮後代元素
    二、next() / next(selector)
        獲取jQuery對象的下一個兄弟元素 / 知足selector的下一個兄弟元素
    三、prev() / prev(selector)
        獲取jQuery對象的上一個兄弟元素 / 知足selector的上一個兄弟元素
    四、siblings() / siblings(selector)
        獲取jQuery對象的全部兄弟 / 知足selector的全部兄弟
    五、find(selector)
        查找知足selector選擇器的後代元素
    六、parent()
        查找jQuery對象的父元素
四、建立 & 插入節點
    一、建立對象
        語法:$("建立內容");
        ex:
            一、建立一個div
                var $div=$("<div></div>");
            二、建立一個button,文本爲 測試按鈕
                var $btn=$("<button>測試按鈕</button>");
    二、插入節點
        一、內部插入
            一、$obj.append($new);
                將$new做爲$obj的最後一個子元素插入進來
            二、$obj.prepend($new);
                將$new做爲$obj的第一個子元素插入進來
        二、外部插入
            一、$obj.after($new)
                將$new做爲$obj的下一個兄弟插入進來
            二、$obj.before($new)
                將$new做爲$obj的上一個兄弟插入進來
五、刪除節點
    一、remove()
        語法:$obj.remove();
        做用:刪除$obj元素
    二、remove("selector")
        語法:$obj.remove("selector")
        做用:按選擇器刪除元素
    三、empty()
        語法:$obj.emptu()
        做用:清空$obj中全部的內容
六、替換 和 複製
    一、替換
        一、replaceWith
            語法:$old.replaceWith($new);
            使用$new元素替換$old元素
        二、replaceAll
            語法:$new.replaceAll($old);
    二、複製
        一、clone()
            $new = $old.clone();

jQuery 事件

一、頁面加載後執行
    HTML頁面加載流程:
        一、向服務器發送請求
        二、接收服務器的響應
        三、在內存中生成DOM樹
        四、渲染 - 顯示內容到網頁上
        五、執行window.onload
    jQuery 處理的時候
        一、向服務器發送請求
        二、接收服務器的響應
        三、在內存中生成DOM樹
        四、執行 加載後的 操做
        五、渲染 - 顯示內容到網頁上
    如何實現頁面加載後執行:
    一、
        $(document).ready( function(){
            //頁面的初始化操做
            //DOM數加載完成後就開始執行
        } );
    二、
        $().ready( function(){
            //頁面的初始化操做
            //DOM數加載完成後就開始執行
        } );
    三、
        $( function(){
            //頁面的初始化操做
            //DOM數加載完成後就開始執行
        } );
二、jQuery實現事件的綁定
    一、方式1
        $obj.bind("事件名稱",function(){
            //事件的操做
            //容許使用this來表示當前元素
        });

        $obj.bind("事件名稱",function(event){
            //事件的操做
            //容許使用this來表示當前元素
            //容許傳遞event對象,做爲事件對象
        });
    二、方式2
        $obj.事件名稱(function(){
            //事件的操做
            //容許使用this來表示當前元素
        });

        $obj.事件名稱(function(event){
            //事件的操做
            //容許使用this來表示當前元素
            //容許傳遞event來表示事件對象
        })

jQuery 動畫

一、基本顯示 / 隱藏
    語法:
        顯示:$obj.show(); / $obj.show(duration);
        隱藏:$obj.hide(); / $obj.hide(duration);
二、滑動式 顯示/隱藏
    語法:
        顯示:$obj.slideDown() / $obj.slideDown(duration);
        隱藏:$obj.slideUp() / $obj.slideUp(duration);
三、淡入淡出式 顯示/隱藏
    語法:
        顯示:$obj.fadeIn() / $obj.fadeIn(duration)
        隱藏:$obj.fadeOut() / $obj.fadeOut(duration)

JSON :

JavaScript Object Notation
JSON是一種輕量級的數據交換格式

聲明JSON格式的對象:
    一、JSON格式的對象使用 {}
    二、使用鍵值對的方式來聲明數據
        鍵 - 表示該對象的屬性
        值 - 表示該對象的值
    三、屬性的屬性(鍵),必須用""引發來,值也是字符串的話也須要使用""引發來
    四、屬性 和 值之間使用 : 隔開
    五、多對屬性之間,使用 , 隔開

    var obj = {
        "name":"sanfeng.zhang",
        "age":"30",
        "gender":"男"
    };

Python工具 - pip

一、做用
    Python的軟件包管理器,有一些python包被集成到了pip中。只要被集成到pip中的包,都容許經過pip直接安裝
二、安裝 pip
    sudo apt install python-pip (python2)
    sudo apt install python3-pip (python3)
三、使用 pip / pip3
    一、安裝/更新/刪除 python包
        一、安裝python包
            sudo pip3 install SomePackage
            ex:
                sudo pip3 install pymysql==0.7.11
        二、下載 python 包
            sudo pip3 download SomePackage
        三、刪除 python 包
            sudo pip3 uninstall SomePackage
        四、更新(升級)python包
            sudo pip3 upgrade SomePackage
    二、查看當前環境中所安裝的包
        pip3 list
    三、搜索
        pip3 search SomePackage
    四、展現
        pip3 show SomePackage
    五、記錄現有環境的python包
        一、pip3 freeze > requirements.txt
            將當前python環境中所安裝的內容打包成一個列表
        二、pip3 install -r requirements.txt
            容許在當前系統下,逐一安裝requirements.txt中所列出的內容

Python工具 - VirtualEnv

一、什麼是VirtualEnv - 虛擬環境
    VirtualEnv,是Python中的虛擬環境,在作Python應用開發時,若是不想在大的Python環境中安裝各類各樣的包的話,則能夠虛擬
出一個Python環境,可讓虛擬環境專門爲某一個應用而存在。容許在虛擬環境中安裝各類包且不影響大的python環境
二、安裝 VirtualEnv
    sudo pip3 install virtualenv
三、建立 和 使用 虛擬環境
    一、準備工做
        mkdir my_env
        cd my_env
    二、建立虛擬環境
        virtualenv 虛擬環境名稱
        ex:virtualenv default

        建立指定版本的虛擬環境
        virtualenv -p /usr/bin/python2.7 名稱
        virtualenv -p /usr/bin/python3.5 名稱
    三、啓動虛擬環境
        注意:不能在 bin 目錄中啓動虛擬環境
        source bin/activate
    四、退出虛擬環境
        deactivate
    五、刪除虛擬環境
        rm 虛擬環境目錄 -rf

    注意:
        在虛擬環境中使用pip安裝和卸載內容時,不要使用 sudo 進行受權
四、虛擬環境管理工具 - VirtualenvWrapper
    一、做用
        第三方的管理工具,可以快速,高效並且方便的管理虛擬環境
    二、安裝虛擬環境管理工具
        sudo pip3 install virtualenvwrapper
    三、配置 virtualenvwrapper
        在~目錄下,有一個終端管理文件 .bashrc (在~目錄下,輸入 ll)
        配置 .bashrc ,以便在啓動終端時,就自動啓動虛擬環境管理工具
        修改.bashrc : sudo vi .bashrc
        在 .bashrc 最底部增長如下內容:
        一、export WORKON_HOME=~/my_env
            將 ~/my_env 做爲虛擬環境的管理目錄,全部使用virtualenvwrapper建立的虛擬環境都默認保存於此
        二、若是系統中包含多個python執行環境的話,則添加如下內容
            export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
        三、source /usr/local/bin/virtualenvwrapper.sh
        四、在 ~ 目錄下,執行一遍 .bashrc
            source .bashrc
    四、使用虛擬環境管理工具
        一、建立並進入虛擬環境
            一、mkvirtualenv 虛擬環境名稱
                ex: mkvirtualenv default
            二、
                mkvirtualenv --python=/usr/bin/python2.7 虛擬環境名稱
        二、查看當前所維護的全部虛擬環境
            workon
        三、切換虛擬環境
            workon 虛擬環境名稱
        四、退出虛擬環境
            deactivate
        五、刪除虛擬環境
            rmvirtualenv 虛擬環境名稱

WEB 與 服務器

一、WEB :表示用戶能夠瀏覽的網頁(HTML,CSS,JS)
二、服務器
    一、硬件 與 軟件
        硬件範疇:一臺主機
        軟件範疇:一個可以接受用戶請求並給出響應的程序
    二、做用
        一、存儲WEB上的信息(網頁,圖片,音視頻,css)
        二、可以處理用戶的請求(request)並給出響應(response)
        三、可以執行服務器端程序:如查詢數據庫
    三、WEB與服務器的關係
        參考圖 - WEB與服務器的關係
        運行在服務器端的程序,能夠由不一樣的語言來編寫:
            Java語言 -> JSP
            C#語言 -> ASP.NET
            php語言 -> php
            Python語言 -> Django
    四、網站請求的全過程
        一、用戶:輸入域名,經過域名解析(DNS)器獲得IP地址
        二、向服務器發送http/https請求
        三、傳輸層TCP協議,通過網絡傳輸和路由解析
        四、WEB服務器接收HTTP請求
        五、服務器處理請求內容,並進行必要的數據交換
        六、將響應的內容發回給瀏覽器(響應)
        七、瀏覽器解析HTML
        八、顯示解析好的內容

框架

一、什麼是框架
        框架是一個爲了解決某些開放性問題而存在的一種結構。框架提供了最基本的功能,咱們只須要在這些基本功能的基礎上構建
本身的操做就能夠了。
    二、框架的優勢
    一、快速開發 - 基本功能已經提供好了
    二、能夠解決大部分問題
    三、bug少,穩定性較高
    三、框架的分類
        一、前端框架
                處理前端內容(HTML,CSS,JS)
        二、後端框架
            處理服務器程序的
            Spring - Java
        三、全棧框架
                包含WEB總體的解決方案,包含開發框架,運行環境
                Rails (Ruby)
                Django(Python)
    四、Python的WEB框架
        一、Django :重量級的Python Web 框架
        二、Tornado :異步框架
        三、Flask :輕量級框架
        四、Webpy :輕量級框架
        五、Web2py :全棧框架,webpy的增強版

設計模式 與 框架模式

一、設計模式
    設計模式,是一套被反覆使用,多數人知曉並通過分類的代碼設計經驗的總結,是爲了解決一些通用性問題的
    目的:重用代碼並保證代碼的可靠性
    官方認證的設計模式有23種:單例模式,抽象工廠模式,觀察者模式 -- 《大話設計模式》
二、框架模式
    代碼的重用,框架模式是解決如何設計程序框架的代碼,在框架模式中會包含多種的設計模式
    如:MVC,MTV,MVVM,ORM,... ...
    一、MVC
        M :Models,模型層
            在程序中主要處理數據,負責在數據庫中對數據進行存取操做(CRUD)
        V :Views , 視圖層
            應用程序中處理顯示的部份內容(html,jsp)
        C :Controllers , 控制器層
            處理用戶交互的部分,一般負責從模型中取出數據,再進行業務的處理,最後將數據給視圖,並將視圖給客戶端
    二、MTV
        M :Models 模型層,功能同上
        T :Templates 模板層
            用於處理用戶顯示的部份內容,如:html
        V :Views 視圖層
            處理用戶交互部分,從模型中獲取數據,再將數據給模板,再顯示給用戶

        M  ---  M
        V  ---  T
        C  ---  V
相關文章
相關標籤/搜索