jQuery 选择器 (ancestor descendant)
2018-11-23 16:56 更新
jQuery 选择器 (ancestor descendant)
定义和用法
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代码 */
<p id="n2" class="test">
<span id="n3" class="a">Welcome</span>
</p>
<p id="n4" class="detail">
<span id="n5" class="b codeplayer">To
<span id="n6" class="c">w3cschool.cn</span>
</span>
</p>
</div>
/* jQuery代码 */
<script>
// 扩展jQuery对象,添加showTagInfo()方法
// 用于将jQuery对象所有匹配元素的标识信息追加到body元素内
// 每个元素的标识信息形如:"tagName"或"tagName#id"
jQuery.fn.showTagInfo = function(){
var tags = this.map( function(){
return this.tagName + ( this.id ? "#" + this.id : "" );
} ).get();
$("body").append( tags.join("<br>") + "<br><br>" );
};
// 选择了id分别为n2、n4的2个元素
$("#n1 p").showTagInfo();
// 匹配p元素的所有后代span元素
// 选择了id分别为n3、n5、n6的3个元素
$("p span").showTagInfo();
// 匹配id为n1的元素的后代中
// 选择了id为n6的一个元素
$("#n1 p.detail span.c").showTagInfo();
</script>
<div id="n1">
<p id="n2" class="test">
<span id="n3" class="a">Welcome</span>
</p>
<p id="n4" class="detail">
<span id="n5" class="b codeplayer">To
<span id="n6" class="c">w3cschool.cn</span>
</span>
</p>
</div>
/* jQuery代码 */
<script>
// 扩展jQuery对象,添加showTagInfo()方法
// 用于将jQuery对象所有匹配元素的标识信息追加到body元素内
// 每个元素的标识信息形如:"tagName"或"tagName#id"
jQuery.fn.showTagInfo = function(){
var tags = this.map( function(){
return this.tagName + ( this.id ? "#" + this.id : "" );
} ).get();
$("body").append( tags.join("<br>") + "<br><br>" );
};
// 选择了id分别为n2、n4的2个元素
$("#n1 p").showTagInfo();
// 匹配p元素的所有后代span元素
// 选择了id分别为n3、n5、n6的3个元素
$("p span").showTagInfo();
// 匹配id为n1的元素的后代中
// 选择了id为n6的一个元素
$("#n1 p.detail span.c").showTagInfo();
</script>
尝试一下 »
点击 "尝试一下" 按钮查看在线实例
以上内容是否对您有帮助:
更多建议: