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

原创 jQuery.find() 函数详解

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

内容目录

find()函数用于选取每个匹配元素的符合指定表达式的后代元素,并以jQuery对象的形式返回。

这里的表达式包括:选择器(字符串)、DOM元素(Element)、jQuery对象。

该函数属于jQuery对象(实例)。

语法

jQueryObject.find( expr )

参数

参数 描述
expr String/Element/jQuery类型指定的表达式。

find()函数将在当前jQuery对象每个匹配元素的所有后代元素中筛选符合指定表达式的元素。

如果expr参数为字符串,则将其视作jQuery选择器,用以表示该选择器所匹配的元素。

jQuery 1.6 新增支持:参数expr可以为DOM元素(Element)或jQuery对象

返回值

find()函数的返回值为jQuery类型,返回一个新的jQuery对象,该对象封装了当前jQuery对象匹配元素的所有符合指定选择器的后代元素

如果没有匹配的元素,则返回空的jQuery对象。

示例&说明

find()函数具有以下等价代码:

// 这里的是selector、selector1均表示任意的选择器
$("selector").find("selector1");
// 等价于
$("selector selector1");

以下面这段HTML代码为例:

<p id="e1">
	<span id="e2" class="site">
		<span id="e3" class="item site-name">CodePlayer</span>
		<span id="e4" class="item site-desc">专注于编程开发技术分享</span>
	</span>
	<span id="e5" class="site-url">https://codeplayer.vip</span>
</p>
<p id="e6">
	JavaScript<span id="e7" class="highlight">jQuery</span>
	<a id="e8" href="https://codeplayer.vip">CodePlayer</a>
</p>

以下jQuery示例代码用于演示find()函数的具体用法:

// 返回jQuery对象所有匹配元素的标识信息数组
// 每个元素形如:tagName或tagName#id(如果有id的话)
function getTagsInfo($doms){
	return $doms.map(function(){
		return this.tagName + (this.id ? "#" + this.id : "");
	}).get();
}

// 匹配id为e1的元素
var $e1 = $("#e1");
var $e1_span = $e1.find("span");
document.writeln( getTagsInfo( $e1_span ) ); // SPAN#e2,SPAN#e3,SPAN#e4,SPAN#e5

var $p = $("p");
var $p_span = $p.find("span");
document.writeln( getTagsInfo( $p_span ) ); // SPAN#e2,SPAN#e3,SPAN#e4,SPAN#e5,SPAN#e7

var $highlight = $p.find( $(".highlight") );
document.writeln( getTagsInfo( $highlight ) ); // SPAN#e7

var a = document.getElementsByTagName("a");
var $a = $p.find( a );
document.writeln( getTagsInfo( $a ) ); // A#e8

运行代码

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

0 条评论

撰写评论

打开导航菜单