jQuery

jQuery

什么是jQuery

  • 什么是jQuery是一個(gè)快速歧斟,簡(jiǎn)潔的JavaScript框架(js庫(kù)儡率,JavaScript代碼庫(kù))罢洲。jQuery設(shè)計(jì)的宗旨的"write Less,Do More",即倡導(dǎo)寫(xiě)更少的代碼拴签,做更多的是运挫。它封裝JavaScript常用的功能代碼,提供簡(jiǎn)潔的JavaScript設(shè)計(jì)模式亲配,事件處理尘应,動(dòng)畫(huà)設(shè)計(jì)和Ajax交互。

jQuery特點(diǎn)

  • 快速獲取文檔元素(并非原始的dom元素)
  • 提供了更多豐富美觀的動(dòng)態(tài)效果
  • 創(chuàng)建AJAX無(wú)刷新網(wǎng)頁(yè)
  • 提供對(duì)JavaScript語(yǔ)言增強(qiáng)
  • 增強(qiáng)的事件處理
  • 更改網(wǎng)頁(yè)內(nèi)容

jQuery庫(kù)包含以下功能:

  • HTML元素獲取
  • HTML元素的操作
  • CSS操作
  • HTML事件函數(shù)
  • JavaScript特效和動(dòng)畫(huà)
  • HTML DOM遍歷和修改
  • AJAX

jQuery安裝

網(wǎng)頁(yè)中添加jQuery
可以通過(guò)多種方法在網(wǎng)頁(yè)中添加jQuery

  • 從jQuery官網(wǎng)(jQuery.com)下載jQuery庫(kù)吼虎。
  • 從CDN中載入jQuery犬钢。
  • 加速器:<script src="https://code.jquery.com/jquery-3.4.1.min.js"integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>

jQuery.js和jQuery.min.js的區(qū)別

  • 兩個(gè)文件完全一樣
  • jQuery.js文件中的代碼沒(méi)有進(jìn)行處理的源代碼,使用于研究
  • jQuery.min.js文件里的代碼進(jìn)行特殊處理(壓縮文件思灰,合并文件)玷犹,文件容量更小,使用于生成環(huán)境洒疚,加載速度更快歹颓。
  • jQuery具有獨(dú)特的鏈?zhǔn)秸Z(yǔ)法和短小清晰的多功能接口。

jQuery語(yǔ)法

通過(guò)jQuery油湖,選取(查詢巍扛,query)HTML元素,并對(duì)它進(jìn)行操作(actions)
基礎(chǔ)語(yǔ)法:$(selector).actions()

  • $(美元符號(hào))定義jQuery
  • 選擇器(selector)"查詢"和"查找"HTML元素
  • jQuery的actions()執(zhí)行對(duì)元素的操作

jQuery選擇器

  • jQuery選擇器允許對(duì)HTML元素組或單個(gè)元素進(jìn)行操作
  • jQuery選擇器基于元素的id,類,類型,屬性,屬性值等*(幾乎支持所有的css選擇器)
  • jQuery中所有的 選擇器都是以美元符開(kāi)頭 $()==jQuery()
  • 注意 jQuery獲取的元素是經(jīng)過(guò)處理之后的HTML元素乏德,并非原始的HTML元素撤奸,因此在使用過(guò)程中,獲取的 jQuery對(duì)象只能使用jQuery的操作方法喊括,不能混用原生js方法寂呛。

jQuery選擇器

語(yǔ)法 描述
$("*") 選取所有元素
$(this) 選取當(dāng)前HTML元素
$('p.box') 選取class為box的 p 元素
$('p:first') 選取第一個(gè) p 元素
$('ul li:first') 選取第一個(gè) ul 元素的第一個(gè) li 元素
$('ul li:first-child') 選取每一個(gè) ul 元素的第一個(gè) li 元素
$('[href]') 選取帶有href屬性的元素
$('a[target='_blank']') 選取所有traget屬性值等于"_blank"的 a 元素
$('a[target!='_blank']') 選取所有traget屬性值不等于"_blank"的 a 元素
$(':button') 選取所有type="button"的 input 元素和 button 元素
$('tr:even') 選取偶數(shù)位置的 tr 元素
$('tr:odd') 選取奇數(shù)位置的 tr 元素

jQuery常見(jiàn)的DOM事件

鼠標(biāo)事件 鍵盤事件 表單事件 文檔/窗口事件
click keypress submit load
dblclick keydown change resize
mousedown keyup input scoll
mouseup - focus unload
mouseenter - blur -
mouseleave - - -
mouseout - - -
mouseover - - -
mousemove - - -
hover - - -

jQuery事件方法 語(yǔ)法

  • click()
  • dblclick()
  • mouseenete()
  • mouseleave()
  • mousedown()
  • mouseup()
  • hover()
  • focus()
  • blur()

jQuery bind()

  • 向元素添加事件處理程序
  • bind()方法向被選元素添加一個(gè)或多個(gè)事件處理程序,以及當(dāng)事件發(fā)生時(shí)運(yùn)行的函數(shù)瘾晃。

jQuery on()

  • jQuery 1.7版本以后贷痪,on()方法是向被選元素添加事件處理程序的首選方法。
  • 注意:使用on()方法添加的事件處理程序使用于當(dāng)前以及未來(lái)的 元素 (比如有腳本創(chuàng)建的 元素)

jQuery DOM 操作

  • 獲取和設(shè)置內(nèi)容
    <strong>text() 設(shè)置或返回元素的文本內(nèi)容</strong>
    獲缺奈蟆:(selector).text() 設(shè)置:(selector).text('要給元素設(shè)置的文本內(nèi)容')
    <strong>html() 設(shè)置或返回所選元素的所有內(nèi)容</strong>
    獲冉俾!:(selector).html() 設(shè)置:(selector).html('<span>百度</span>123123')
    <strong>val() 設(shè)置或返回表單字段的值</strong>
    獲取:(selector).val() 設(shè)置:(selector).val('<span>百度</span>123123')
    <strong>attr() 設(shè)置或返回元素的屬性值</strong>
    獲惹恳取:(selector).val('屬性名稱') 設(shè)置:(selector).val('屬性名稱','屬性值')
  • 添加元素
    append()-在被選元素內(nèi)部的結(jié)尾插入內(nèi)容(允許包含HTML內(nèi)容)
    $('.showBox').append('插入內(nèi)容');
    
    prepend()-在被選元素內(nèi)部的開(kāi)頭插入內(nèi)容(允許包含HTML內(nèi)容)
    $('.showBox').prepend('開(kāi)頭')
    
    after()-在被選元素之后插入內(nèi)容(允許包含HTML內(nèi)容)
    $('.showBox').after('測(cè)試');
    
    before()-在被選元素之前插入內(nèi)容(允許包含HTML內(nèi)容)
    $('.showBox').before('<span>元素之前</span>');
    
    以上方法的語(yǔ)法:
    $(selector).active(textContent|elementContent)
    appendTo()-在被選元素的結(jié)尾插入HTML元素
     $('<h2>元素的結(jié)尾</h2>').appendTo('.box');
    
    prependTo()-在被選元素的開(kāi)頭插入HTML元素
    $('<h2>元素的開(kāi)頭</h2>').prependTo('.box');
    
    insertAfter()--在被選元素的后面插入HTML元素
    $('<h2>元素的后面</h2>').insertAfter('.box');
    
    insertBefore()--在被選元素的前面插入HTML元素
    $('<h2>元素的前面</h2>').insertBefore('.box');
    
    以上方法的語(yǔ)法:
    $(content).actions(selector)
  • 刪除元素
    remove()-刪除被選元素(及其子元素)
    empty()-從被選的元素中刪除子元素
  • 獲取并設(shè)置css類
    addClass()-向被選元素添加一個(gè)或多個(gè)類
     $('.btn').addClass('active');
    
    removeClass()-從被選中的元素刪除一個(gè)或多個(gè)類
     $('.btn').removeClass('active');
    
    toggleClass()-對(duì)被選元素進(jìn)行 添加/刪除類的切換操作
    $('.btn').toggleClass('active');
    
    css('porpertyname','porpertyvalue')-設(shè)置或返回指定的css屬性
    //設(shè)置單一css屬性
    $('li:first-child').css('color', 'yellowgreen')
    //設(shè)置多個(gè)css屬性
    $('li:first-child').css('color', 'yellowgreen').css('font-weight', 'bolder')
    $('li:first-child').css({'color': 'red', 'border': '2px solid #f00'})
    
  • jQuery-尺寸
    通過(guò)jQuery舱沧,我們可以更容易的處理元素和瀏覽器窗口的尺寸
    
    • width()
      設(shè)置或返回元素的寬度(不包括內(nèi)邊距,邊框或外邊距)
    • height()
      設(shè)置或返回元素的高度(不包括內(nèi)邊距偶洋,邊框或外邊距)
    • innerWidth()
      返回元素的寬度(包括內(nèi)邊距)
    • innerHeight()
      返回元素的高度(包括內(nèi)邊距)
    • outerWidth()
      返回元素的寬度(包括內(nèi)邊距和邊框)
    • outerHeight()
      返回元素的高度(包括內(nèi)邊距和邊框)

jQuery 效果

  • jQuery 效果-隱藏和顯示
    • hide()隱藏HTML元素
    /**
    $(selector).hide(speed,callback);
    $(selector).show(speed,callback);
    speed:可選參數(shù);規(guī)定隱藏/顯示的速度熟吏,值:"sloe","fast"或者毫秒
    callback:可選參數(shù);隱藏/顯示效果執(zhí)行完成之后所要執(zhí)行的函數(shù)名稱
    */
    //點(diǎn)擊元素讓指定元素隱藏
    $('button').on('cilck',function(){
        $('h1').hide();
    })
    //點(diǎn)擊元素讓其父元素隱藏
     $('h1').on('click', function() {
        $(this).parents($('.box')).hide(5000, function() {
            $('p').show('fast');
        });
    })
    
    • show()顯示HTML元素
    $('button').on('cilck',function(){
        $('h1').show();
    })
    
    • toggle() 用來(lái)切換hide()和show()方法
    /**
    $().toggle(speed,callback);
    speed:可選參數(shù);規(guī)定隱藏/顯示的速度,值:"sloe","fast"或者毫秒
    callback:可選參數(shù);隱藏/顯示效果執(zhí)行完成之后所要字符的函數(shù)名稱
    */
    
  • jQuery 效果-淡入淡出
    • fadeIn()
    /**
    $(selector).actions(speed,callback);
    speed:可選參數(shù);規(guī)定淡入/淡出的速度,值:"sloe","fast"或者毫秒
    callback:可選參數(shù);規(guī)定淡入/淡出效果執(zhí)行完成之后所要字符的函數(shù)名稱
    */
    
    • fadeOut()
    • fadeToggle()
    • fadeTo()
    /**
    $(selector).actions(speed,opacity,callback);
    speed:可選參數(shù);規(guī)定淡入/淡出的速度牵寺,值:"sloe","fast"或者毫秒
    opacity:元素結(jié)余0-1之間的 透明度值悍引。
    callback:可選參數(shù);規(guī)定淡入/淡出效果執(zhí)行完成之后所要字符的函數(shù)名稱
    */
    
  • jQuery 效果-滑動(dòng) ```
    通過(guò)以下方法實(shí)現(xiàn)滑動(dòng)效果
    • slideDown
    • slideUp
    • slideToggle
    /**
    $(selector).actions(speed,callback);
    speed:可選參數(shù);規(guī)定滑入/滑出的速度,值:"sloe","fast"或者毫秒
    callback:可選參數(shù);規(guī)定滑入/滑出效果執(zhí)行完成之后所要字符的函數(shù)名稱
    */
    
  • jQuery 效果-動(dòng)畫(huà)
    • animate() 允許創(chuàng)建自定義的動(dòng)畫(huà)
    /**
     $(selector).animate({params},speed,callback)
     {params}
    */
    $('.btn1').on('click', function() {
        $('ul').animate({
            left: '200px',
            top: '100px'
        }, 5000);
    })
    // 使用相對(duì)值
    // 可以定義相對(duì)值(相對(duì)于元素的當(dāng)前值)帽氓。需要早值的前面加上+=或-=;
    $('.btn2').on('click', function() {
        $('ul').animate({
            left: '200px',
            height: '+=100px',
               width: '-=100px'
        });
    })
    // 使用預(yù)定義的值
    

jQuery 遍歷

什么是遍歷

  • jQuery提供了多種遍歷DOM的方法
  • 遍歷方法中最大的種類是樹(shù)遍歷(tree-teaversal)

jQuery遍歷-祖先 向上遍歷DOM樹(shù)

  • parent()
    parent()方法返回被選元素的直接父元素
    該方法只會(huì)向上一級(jí)對(duì)DOM樹(shù)激進(jìn)遍歷
    
     $(document).ready(function() {
        var p_element = $('span').parent();
        console.log(p_element);
    })
    
  • parents()
    parents() 方法返回被選元素的元素祖先元素趣斤,一直向上遍歷直到文檔的根元素(<html>)
    
    // 返回所有祖先元素
    $(document).ready(function() {
        console.log($('span').parents();
    })
    // 使用可選參數(shù)用來(lái)過(guò)濾對(duì)祖先元素的 搜索遍歷
    // 返回祖先元素中指定 的元素
    $(document).ready(function() {
        console.log($('span').parents('.fbox'));
    })
    
  • parentsUntil()
    parentsUntil()返回介于兩個(gè)元素之間的所有祖先元素
    
    // 返回介于<span>與<div>元素之間的所有祖先元素
    $(document).ready(function() {
        $('span').parentsUntil("body").css({
            'color': 'red',
            'border': '1px solid red'
        })
    })
    

jQuery遍歷-后代 向下遍歷DOM樹(shù)

  • children()
    children() 方法返回被選元素的所有的直接子元素
    
    // 獲取直系的子元素
    $(document).ready(function() {
        console.log($('.f_fbox').children())
        $('.f_fbox').children().css('border', '1px solid red')
    })
    // 獲取直系的子元素中指定 的元素
    $(document).ready(function() {
        console.log($('.f_fbox').children('fbox1'))
    })
    
  • find()
    find()方法返回被選元素的后代元素,一路向下直到最后一個(gè)后代
    
    // 返回所有的后代
    $(document).ready(function() {
        console.log($('.fbox').find('*'))
    })
    // 返回指定的后代元素
    $(document).ready(function() {
        console.log($('.fbox').find('span'))
    })
    

jQuery遍歷-同胞 (silblings)

在DOM樹(shù)中水平遍歷

  • siblings()
    siblings()方法返回被選元素的所有同胞元素
    
  • next()
    方法返回被選元素的后一個(gè)同胞元素黎休。
    
  • nextAll()
    返回被選元素之后的所有同胞元素
    
  • nextUntil()
    返回兩個(gè)給定參數(shù)之間的每個(gè)元素之后的所有同胞元素
    
  • prev()
    方法返回被選元素的前一個(gè)同胞元素
    
  • prevAll()
    返回被選元素之前的所有同胞元素
    
  • prevUntil()
    返回兩個(gè)給定參數(shù)之間的每個(gè)元素之前的所有同胞元素
    

jQuery遍歷-過(guò)濾

  • first()
    返回被選元素的首個(gè)元素
    
  • last()
    返回被選元素的最后一個(gè)元素
    
  • eq()
    返回被選元素中帶有指定搜索引號(hào)的元素
    索引從0開(kāi)始
    
  • filter()
    filter()方法允許規(guī)定一個(gè)標(biāo)準(zhǔn)浓领,不匹配這個(gè)標(biāo)準(zhǔn)的元素都會(huì)被從集合中刪除,返回匹配的元素
    
  • not()
    not()返回不匹配標(biāo)準(zhǔn)的所有元素
    

jQuery AJAX

什么是AJAX

AJAX是與服務(wù)器做數(shù)據(jù)交換|交互 的技術(shù)势腮,在不重載全部的情況下联贩,對(duì)部分網(wǎng)頁(yè)的更新。
AJAX=異步 JavaScript和XML(Asynchronous JavaScript And XML)

jQuery與AJAX

jQuery提供多個(gè)與AJAX有關(guān)的方法
通過(guò)jQuery AJAX方法捎拯,使用HTTP GET和HTTP POST 從遠(yuǎn)程服務(wù)器上請(qǐng)求文本泪幌、HTTP、XML或JSON玄渗,以方便我們可以將這些外部數(shù)據(jù)直接載入網(wǎng)頁(yè)的被選元素中
  • load()
    load()方法從服務(wù)器加載數(shù)據(jù)座菠,并把返回的數(shù)據(jù)放入被選元素中
    
    // 語(yǔ)法:
    // $(selector).load(URL,data,callback);
    /**
     * URL:必選 url規(guī)定要加載的URL
     * data:可選 規(guī)定與請(qǐng)求一起發(fā)送的查詢字符串 鍵/值對(duì)集合
     * callback:可選 load()方法執(zhí)行完成后所執(zhí)行的函數(shù)名稱
    */
    
  • get()
    用于通過(guò)HTTP GET請(qǐng)求從服務(wù)器請(qǐng)求數(shù)據(jù)
    HTTP GET 從指定的資源(接口)請(qǐng)求數(shù)據(jù)
    
    // 語(yǔ)法:
    // $.get(URL,callback);
    
    
  • post()
    用于通過(guò)HTTP POST請(qǐng)求從服務(wù)器請(qǐng)求數(shù)據(jù)
    HTTP POST 向指定的資源(接口)提交要處理的數(shù)據(jù)
    
    // 語(yǔ)法:
    // $.post(URL,data,callback);
    
    
  • ajax()
    // $.ajax({key:val,key:val,……})
    //type:HTTP 請(qǐng)求的類型(GET和POST)
    //url:發(fā)送請(qǐng)求的URL地址默認(rèn)是當(dāng)前頁(yè)面
    // data:發(fā)送到服務(wù)器的數(shù)據(jù)狸眼。
    // complete(xhr,statue)請(qǐng)求完成時(shí)運(yùn)行的函數(shù)(在請(qǐng)求成功或請(qǐng)求失敗之后都會(huì)調(diào)用)
    // sucscess(result,status,xhr)請(qǐng)求成功運(yùn)行的函數(shù)
    //error(xhr,statue,error)請(qǐng)求失敗運(yùn)行的函數(shù)
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載藤树,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。
  • 序言:七十年代末拓萌,一起剝皮案震驚了整個(gè)濱河市岁钓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌微王,老刑警劉巖屡限,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異炕倘,居然都是意外死亡钧大,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門罩旋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)啊央,“玉大人,你說(shuō)我怎么就攤上這事涨醋」霞ⅲ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵浴骂,是天一觀的道長(zhǎng)乓土。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么趣苏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任狡相,我火速辦了婚禮,結(jié)果婚禮上拦键,老公的妹妹穿的比我還像新娘谣光。我一直安慰自己,他們只是感情好芬为,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布萄金。 她就那樣靜靜地躺著,像睡著了一般媚朦。 火紅的嫁衣襯著肌膚如雪氧敢。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天询张,我揣著相機(jī)與錄音孙乖,去河邊找鬼。 笑死份氧,一個(gè)胖子當(dāng)著我的面吹牛唯袄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜗帜,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼恋拷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了厅缺?” 一聲冷哼從身側(cè)響起蔬顾,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎湘捎,沒(méi)想到半個(gè)月后诀豁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窥妇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年舷胜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片活翩。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡烹骨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纱新,到底是詐尸還是另有隱情展氓,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布脸爱,位于F島的核電站遇汞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜空入,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一络它、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧歪赢,春花似錦化戳、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至白对,卻和暖如春掠廓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甩恼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工蟀瞧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人条摸。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓悦污,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親钉蒲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子切端,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355