jquery中的parent和parents方法
2016-10-16 14:33
369 查看
注: 我使用的版本是2.2.4.
parent方法是获取当前节点的直接父节点, 而parents方法是获取当前节点的所有祖先节点.
其实并不难理解, 一看源码就知道了.
其实parent方法用的就是原生的parentNode属性来获取的(nodeType为11的节点类型是DocumentFragment).
对于parents方法又调用了dir方法, 我们继续看:
已经很清楚了, parents方法用的是原生的parentNode, 并一直循环到document为止, 并且全部都是元素节点(
parent方法是获取当前节点的直接父节点, 而parents方法是获取当前节点的所有祖先节点.
其实并不难理解, 一看源码就知道了.
jQuery.each( { parent: function( elem ) { var parent = elem.parentNode; return parent && parent.nodeType !== 11 ? parent : null; }, parents: function( elem ) { return dir( elem, "parentNode" ); } // ... 其他方法 );
其实parent方法用的就是原生的parentNode属性来获取的(nodeType为11的节点类型是DocumentFragment).
对于parents方法又调用了dir方法, 我们继续看:
var dir = function( elem, dir, until ) { var matched = [], truncate = until !== undefined; while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { if ( elem.nodeType === 1 ) { if ( truncate && jQuery( elem ).is( until ) ) { break; } matched.push( elem ); } } return matched; };
已经很清楚了, parents方法用的是原生的parentNode, 并一直循环到document为止, 并且全部都是元素节点(
elem.nodeType === 1), 返回的是一个数组, 而parent方法返回的是一个对象.
相关文章推荐
- jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
- jQuery通过parent()和parents()方法访问父级元素
- jquery .parents(), .parent() 和 closest()方法
- jquery遍历之parent()与parents()的区别 及 parentsUntil() 方法
- jquery .parents() .parent() .closet()方法
- jQuery中parent()、parents()、parentsUntil()三个方法的区别
- jquery遍历之parent()与parents()的区别 及 parentsUntil() 方法
- Jquery学习笔记:利用parent和parents方法获取父节点
- jQuery方法parent() parents() closest()区别
- jquery的parent和parents方法区别
- jquery .parents() .parent() .closet()方法
- jQuery 之 parent、parents 和 closest 方法
- jquery遍历之parent()与parents()的区别 及 parentsUntil() 方法
- jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
- jquery遍历之parent()与parents()的区别 及 parentsUntil() 方法
- Jquery中的parent()与parents()取父元素的区别
- jquery parent() parents() closest()区别
- 关于Jquery的parent和parents
- jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
- jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析