亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • jQuery children()?方法

    獲得匹配元素集合中每個元素的子元素,選擇器選擇性篩選。

    因為就jQuery可以是一個DOM的合集對象,所以children就需要遍歷每一個合集中的直接子元素了,并且最后需要構建一個新的jQuery對象。

    jQuery find()?方法

    1、.find()方法返回被選元素的后代元素,一路向下直到最后一個后代。

    2、.find()方法允許我們能夠通過查找DOM樹中的這些元素的后代元素,匹配的元素將構造一個新的jQuery對象。

    3、.find().children()方法是相似的,但后者只是再DOM樹中向下遍歷一個層級。

    4、.find()方法還可以接受一個選擇器表達式,該選擇器表達式可以是任何可傳給$()函數的選擇器表達式。如果緊隨兄弟匹配選擇器,它將被保留在新構建的jQuery對象中;否則,它被排除在外。


    查看全部
    0 采集 收起 來源:遍歷后代

    2018-07-13

  • .next()?獲得匹配元素集合中每個元素緊鄰的同輩元素。.prev()?獲得匹配元素集合中每個元素緊鄰的前一個同輩元素,由選擇器篩選(可選)。.siblings()?獲得匹配元素集合中所有元素的同輩元素,由選擇器篩選(可選)。

    相鄰節點的處理是最簡單的,在節點上調用nextSibling或者previousSibling,但是我們也要注意相同處理復用的問題:

    Siblings的意思就是找到5個li中除去class="third-item"的其余4個,那么我們可以換個思路,可以通過class="third-item"父級ul的第一個子元素開始遍歷去篩選,排除class="third-item"即可


    function sibling(cur, dir) {

    ? while ((cur = cur[dir]) && cur.nodeType !== 1) {}

    ? return cur;

    }


    function next(elem) {

    ? return sibling(elem, "nextSibling");

    }


    function prev(elem) {

    ? return sibling(elem, "previousSibling");

    }


    查看全部
    0 采集 收起 來源:遍歷同胞(下)

    2018-07-13

  • 通過jQuery能夠在DOM樹中遍歷元素的同胞元素。

    其中nextAll、prevAll、nextUntil、prevUntil其實與遍歷祖先的的查找處理是非常類似。

    .nextAll()?獲得匹配元素集合中每個元素之后的所有同輩元素,由選擇器進行篩選(可選)。.nextUntil()?獲得每個元素之后所有的同輩元素,直到遇到匹配選擇器的元素為止。.prevAll()?獲得匹配元素集合中每個元素之前的所有同輩元素,由選擇器進行篩選(可選)。.prevUntil()?獲得每個元素之前所有的同輩元素,直到遇到匹配選擇器的元素為止。

    ?alert(item.nextAll()[0].className)

    ? alert(item.prevAll()[0].className)

    ? alert(item.nextUntil('.end')[0].className)

    ? alert(item.prevUntil('.first')[0].className)


    查看全部
    0 采集 收起 來源:遍歷同胞(上)

    2018-07-13

  • 同胞就是擁有相同的父元素。

    通過jQuery能夠在DOM樹中遍歷元素的同胞元素。

    其中nextAll、prevAll、nextUntil、prevUntil其實與遍歷祖先的的查找處理是非常類似。

    .nextAll()?獲得匹配元素集合中每個元素之后的所有同輩元素,由選擇器進行篩選(可選)。.nextUntil()?獲得每個元素之后所有的同輩元素,直到遇到匹配選擇器的元素為止。.prevAll()?獲得匹配元素集合中每個元素之前的所有同輩元素,由選擇器進行篩選(可選)。.prevUntil()?獲得每個元素之前所有的同輩元素,直到遇到匹配選擇器的元素為止。


    查看全部
    0 采集 收起 來源:遍歷同胞(上)

    2018-07-13

  • 通過 jQuery,能夠向上遍歷 DOM 樹,以查找元素的祖先。

    向上遍歷 DOM 樹,這些 jQuery 方法很有用,它們用于向上遍歷 DOM 樹:

    parent()
    parents()
    parentsUntil()

    .parent()方法允許我們能夠在DOM樹中搜索到這些元素的父級元素,從有序的向上匹配元素,并根據匹配的元素創建一個新的 jQuery 對象。

    .parents().parent()方法是相似的,但后者只是進行了一個單級的DOM樹查找

    .parentsUntil()?方法會找遍所有這些元素的前輩元素,直到遇到了跟參數匹配的元素才會停止。返回的jQuery對象中包含了所有找到的前輩元素,除了與?.parentsUntil()?選擇器匹配的那個元素。


    查看全部
    0 采集 收起 來源:遍歷祖先

    2018-07-13

  • 遍歷的接口很多都是具有相似或者說是一類的處理功能,那么這種接口的設計我們不能就事論事的一個一個去實現,這樣代碼就會顯得非常累贅也不容易維護,那么就這么幾大類Query分了好幾十API出來,豐富的接口可以讓高層的設計更為簡單。但是框架內部的卻要簡練。那么針對這種類似功能的接口,jQuery內部就會做更多的抽象處理了。

    1.針對層級關系的處理,jQuery就抽出了一個dir的方法,用于根據傳遞的元素與詞素的位置關系,查找指定的元素。

    parent,parents,parentsUntil等方法如代碼所示:

    function?dir(elem,?dir,?until)?{?
    ???//參考右邊代碼??
    ???return?matched;
    }

    2.我們在上半部的第一章中就提到過迭代器,迭代器是一個框架的重要設計。

    我們經常需要提供一種方法順序的用來處理聚合對象中各個元素,而又不暴露該對象的內部,這也是設計模式中的迭代器模式。

    迭代器除了單純的遍歷,在jQuery內部的運用最多的就是接口的抽象合并,相同功能的代碼功能合并處理:

    jQuery.each({??
    ???parent:?function(elem)?{},?
    ???parents:?function(elem)?{},??
    ???nextAll:?function(elem)?{},??
    ???prevAll:?function(elem)?{},??
    ???................
    },?function(name,?fn)?{??
    ???api[name]?=?function(until,?selector){????
    ??//代碼右圖??
    };
    });


    查看全部
  • https://img1.sycdn.imooc.com//5b46c0e90001ae0203780191.jpg

    ? <div> 元素是 <ul> 的父元素,同時是其中所有內容的祖先。

    ? <ul> 元素是 <li> 元素的父元素,同時是 <div> 的子元素

    ? 左邊的 <li> 元素是 <span> 的父元素,<ul> 的子元素,同時是 <div> 的后代。

    ? <span> 元素是 <li> 的子元素,同時是 <ul> 和 <div> 的后代。

    ? 兩個 <li> 元素是同胞(擁有相同的父元素)。

    ? 右邊的 <li> 元素是 <b> 的父元素,<ul> 的子元素,同時是 <div> 的后代。

    ? <b> 元素是右邊的 <li> 的子元素,同時是 <ul> 和 <div> 的后代。

    提示:祖先是父、祖父、曾祖父等等。后代是子、孫、曾孫等等。同胞擁有相同的父。

    jQuery的遍歷處理不僅只是針對基本的層級關系,還擴展了大量的篩選接口,包括了用于篩選、查找和串聯元素的方法。之后我們會介紹到各自的實現。

    ?


    查看全部
  • Range? dom 接口
    createDocumentFragment? ; nodeType 11

    ? 插入document時, 插入子節點

    查看全部
  • domManip 抽象

    節點操作:

    ? cloneNode,appendNode,hasChildNodes,insertBefore,removeChild

    查看全部
    0 采集 收起 來源:節點操作

    2018-04-19

  • next nextSibling

    prev prevSibling

    查看全部
    0 采集 收起 來源:遍歷同胞(上)

    2018-04-19

  • nodeType :1 element,2 attr,3 text ,9 document,11 fragment

    dir // move :from elem, path dir, stop until?


    查看全部
  • -? $('li').eq(2) //先序遍歷,而不是一層層遍歷

    -? $('ul.level-2').children() //只子

    -? find 查找所有子集


    查看全部
    0 采集 收起 來源:什么是遍歷?

    2018-04-19

  • d

    查看全部
  • 通過一個 Tween 類構造出來的緩動對象,其實就是針對每一個屬性的封裝對象,這樣我們只需要設計一個定時器,在指定的時間內調用 Tween 生成的這些對象就可以了,Tween 內部控制著各自屬性的狀態改變。 其實動畫的整個設計就是這么簡單的,代碼的復雜是因為還兼容了各種不同情況的處理,比如實現 deferred 機制,針對寬高變化的 overflow 處理,針對 display 為 inline 情況下的處理,那么這些都是一些預處理的機制,在對應的 defaultPrefilter 函數中就能找到,我們沒有必要是單獨實現了。 其實動畫的設計,我們可以學到一個很重要的一點: 封裝變化,把每一個屬性變化都獨立封裝一個對象,讓其自己管理與控制。
    查看全部
    0 采集 收起 來源:動畫實現

    2018-01-13

  • deffered -- 那么這樣操作的一個好處就是,可以把邏輯處理都放到一塊,我們在代碼的某一個環節針對特別的處理,需要臨時改變一些東西,但是在之后我們希望又恢復原樣,為了邏輯的清晰,我們可以引入 deferred.alway 方法,在某一個環節改了一個屬性,然后注冊到 alway 方法上一個完成的回調用來恢復,這樣的邏輯塊是很清晰的。 在動畫預初始化之后(為了支持動畫,臨時改變元素的一些屬性與狀態),我們就需要給每一個屬性生成一個獨立的緩動對象了 createTween,主要用于封裝這個動畫的算法與執行的一些流程操作控制。 屬性預處理 針對 height/width 動畫的時候,要先處理本身元素溢出 針對 height/width 動畫的時候,元素本身的 inline 狀態處理 我們知道元素本身在布局的時候可以用很多屬性對其設置,可是一旦進行動畫的話,某些屬性的設置可能會對動畫的執行產生副作用,所以針對這樣的屬性,jQuery 直接在內部做了最優的處理,如果我們進行元素 height/width 變化的時候,比如 height:1,這樣的處理 jQuery 就需要針對元素做一些強制性的處理。 1 添加 overflow =“hidden” 2.如果設置了內聯并且沒有設置浮動 display = "inline-block"; 因為內容溢出與內聯元素在執行動畫的時候,與這個 height/width 的邏輯是符合的,當然針對這樣的修改 jQuery 非常巧妙了用到了 deferred.always 方法,我們在執行動畫的時候,由于動畫的需要改了原始的屬性,但是動畫在結束之后,我們還是需要還原成其狀態。 deferred 量身定做的 always 方法,不管成功與失敗都會執行這個復原的邏輯。
    查看全部
    0 采集 收起 來源:動畫設計

    2018-03-22

舉報

0/150
提交
取消
課程須知
源碼的閱讀不是一蹴而就的,需要大家有一定的功底,比如jQuery的基礎運用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基礎功底,甚至還需要理解常見的設計模式、數據結構等等。當然大家也不要被這些給嚇住了,理解,總是需要一種慢慢的學習過程。
老師告訴你能學到什么?
通過本課程的學習,您可以由淺入深地剖析jQuery庫的設計與實現。 其中我們圍繞的重心: 1、設計理念 2、結構組織 3、接口設計 4、模式運用 5、場景套用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!