鍍金池/ 問答/數(shù)據(jù)庫  HTML/ 原生js實現(xiàn)jQuery的next方法?

原生js實現(xiàn)jQuery的next方法?

求指點,謝謝

回答
編輯回答
別傷我

JQuery本身就是JS的封裝,查閱JQuery的源碼就能得到答案。如果要編寫自己的遍歷JS,可以先參考JQuery的源碼和其他語言的遍歷代碼,對自己封裝原生JS應(yīng)該會有所幫助。

源碼詳情分析可參考以下 nuysoft攥寫 的博客內(nèi)容:
http://www.cnblogs.com/nuysof...

JQuery的next() 主要通過 HTML DOM 的 nodetype和 nextsibling 兩個基本屬性 實現(xiàn)。其中有些函數(shù)還會涉及parentNode,children等等屬性。
一些常見的原生JS也是圍繞這幾個HTML的基本屬性和JS語法去編寫的。

HTML DOM nodetype屬性
nodeType 屬性返回以數(shù)字值返回指定節(jié)點的節(jié)點類型。
如果節(jié)點是元素節(jié)點,則 nodeType 屬性將返回 1。
...
如果節(jié)點是document,則 nodeType 屬性將返回 9。

HTML DOM nextSibling屬性
nextSibling屬性:該屬性表示當(dāng)前節(jié)點的下一個節(jié)點;如果其后沒有與其同級的節(jié)點,則返回null;

JQuery遍歷迭代三個核心函數(shù)
jQuery.dir( elem, dir, until )從一個元素出發(fā),迭代檢索某個方向上的所有元素并記錄,直到與遇到document對象或遇到until匹配的元素jQuery.nth( cur, result, dir, elem )從一個元素出發(fā),迭代檢索某個方向上的第N個元素jQuery.sibling( n, elem )元素n的所有后續(xù)兄弟元素,包含n,不包含elem

2017年8月18日 03:42