1 个回答

JQuery本身就是JS的封装,查阅JQuery的源码就能得到答案。如果要编写自己的遍历JS,可以先参考JQuery的源码和其他语言的遍历代码,对自己封装原生JS应该会有所帮助。

源码详情分析可参考以下 nuysoft攥写 的博客内容:
http://www.cnblogs.com/nuysof...

JQuery的next() 主要通过 HTML DOM 的 nodetype和 nextsibling 两个基本属性 实现。其中有些函数还会涉及parentNode,children等等属性。
一些常见的原生JS也是围绕这几个HTML的基本属性和JS语法去编写的。

HTML DOM nodetype属性
nodeType 属性返回以数字值返回指定节点的节点类型。
如果节点是元素节点,则 nodeType 属性将返回 1。
...
如果节点是document,则 nodeType 属性将返回 9。

HTML DOM nextSibling属性
nextSibling属性:该属性表示当前节点的下一个节点;如果其后没有与其同级的节点,则返回null;

JQuery遍历迭代三个核心函数
jQuery.dir( elem, dir, until )从一个元素出发,迭代检索某个方向上的所有元素并记录,直到与遇到document对象或遇到until匹配的元素jQuery.nth( cur, result, dir, elem )从一个元素出发,迭代检索某个方向上的第N个元素jQuery.sibling( n, elem )元素n的所有后续兄弟元素,包含n,不包含elem

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题