您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年08月16日 00:43

原创 jQuery 选择器(ancestor descendant)详解

4012 次浏览 读完需要≈ 6 分钟

内容目录

jQuery的ancestor descendant选择器(后代选择器)用于匹配ancestor元素所有的descendant元素,将其封装为jQuery对象并返回。

注意:选择器descendant的查找范围是"ancestor元素"的后代元素,不管是"ancestor元素"的子辈元素,还是"孙子辈",以及更"后辈"的元素均可。
如果你只想查找子辈元素,请使用子代选择器(parent > child)

语法

// 这里的ancestor表示具体的祖先选择器
// 这里的descendant表示具体的后代选择器
jQuery( "ancestor descendant" )

参数

参数 描述
ancestor 一个有效的祖先选择器
descendant 一个有效的后代选择器

返回值

返回封装了在符合祖先选择器的DOM元素内查找到的符合后代选择器的DOM元素的jQuery对象。

如果找不到与祖先选择器匹配的DOM元素,或者在符合祖先选择器的DOM元素内找不到符合后代选择器的DOM元素,则返回一个空的jQuery对象。

符合祖先选择器的祖先DOM元素可能有多个,在一个祖先DOM元素内也可能查找到多个后代DOM元素,返回的jQuery对象中封装了符合条件的所有DOM元素。

示例&说明

以下面这段HTML代码为例:

<div id="n1">
	<p id="n2" class="test">
		<span id="n3" class="a">Hello</span>
	</p>
	<p id="n4" class="detail">
		<span id="n5" class="b codeplayer">World
			<span id="n6" class="c">365mini.com</span>
		</span>
	</p>
</div>

现在,我们想要一次性查找到id为n1的标签内的所有p标签,则可以编写如下jQuery代码:

// 选择了id分别为n2、n4的2个元素
$("#n1 p");

如果要一次性查找到p标签内的所有span标签,则对应的jQuery代码如下(上述示例HTML中所有的span标签都包括在内):

// 选择了id分别为n3、n5、n6的3个元素
$("p span");

当然,祖先选择器和后代选择器可以是任意有效的选择器,因此它们本身也可以是一个"祖先-后代"选择器。

// 选择了id为n6的一个元素
$("#n1 p.detail span.c");

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单