一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

jquery 获取父节点实现代码详解

时间:2013-06-09 编辑:简简单单 来源:一聚教程网

在js中我们要获取父节点有很多办法,如

1)parentObj.firstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持parentObj.firstChild.firstChild.firstChild...的形式,如此就可以获得更深层次的节点。

(2)parentObj.lastChild:很显然,这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样,它也可以递归使用。

在使用中,如果我们把二者结合起来,那么将会达到更加令人兴奋的效果,即:parentObj.firstChild.lastChild.lastChild...

(3)parentObj.childNodes:获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点。

jquery我们可以使用closest和parents


假设需要获取当前节点的祖父节点(父节点的父节点),其有属性class=”pp”,那么获取的方法为:

 代码如下 复制代码

$('#cur').parent().parent();

$('#cur').parent().parent('.pp');

$('#cur').parent('.pp');

获取父节点的方法closest([expr])。

 代码如下 复制代码

$('#cur').closest('.pp');

先举个例子,

 代码如下 复制代码

我们的目的是通过 id 为 item1 的便签a取到 class 为 parent1 的ul元素,有以下几种方法:

1、parent([expr])

取得一个包含着所有匹配元素的唯一父元素的元素集合。

你可以使用可选的表达式来筛选。

代码如下

 代码如下 复制代码

$('#item1').parent().parent('.parent1');

2、:parent

匹配含有子元素或者文本的元素

代码如下
 

 代码如下 复制代码
$('li:parent');

3、parents([expr])

取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。

代码如下

 代码如下 复制代码

$('#items').parents('.parent1');

closest和parents的主要区别是:

前者从当前元素开始匹配寻找,后者从父元素开始匹配寻找
前者逐级向上查找,直到发现匹配的元素后 就停止了,后者一直向上查找直到根元素,然后把这些元素放进一个临时集合中,再用给定的选择器表达式去过滤
前者返回0或1个元素,后者可能包含0 个,1个,或者多个元素

热门栏目