jQuery中find()方法的疑惑
$(“.show”)和$a.find("div.show")区别是什么?为什么不直接用第一种方法去找元素,用find方法是为了找到元素的同时构造jquery对象吗?...
$(“.show”)和$a.find("div.show")区别是什么?为什么不直接用第一种方法去找元素,用find方法是为了找到元素的同时构造jquery对象吗?
展开
4个回答
展开全部
find() 方法获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选。
语法:.find(selector) 参数selector 字符串值,包含供匹配当前元素集合的选择器表达式。
详细说明:
如果给定一个表示 DOM 元素集合的 jQuery 对象,.find() 方法允许我们在 DOM 树中搜索这些元素的后代,并用匹配元素来构造一个新的 jQuery 对象。.find() 与 .children() 方法类似,不同的是后者仅沿着 DOM 树向下遍历单一层级。
.find() 方法第一个明显特征是,其接受的选择器表达式与我们向 $() 函数传递的表达式的类型相同。将通过测试这些元素是否匹配该表达式来对元素进行过滤。
语法:.find(selector) 参数selector 字符串值,包含供匹配当前元素集合的选择器表达式。
详细说明:
如果给定一个表示 DOM 元素集合的 jQuery 对象,.find() 方法允许我们在 DOM 树中搜索这些元素的后代,并用匹配元素来构造一个新的 jQuery 对象。.find() 与 .children() 方法类似,不同的是后者仅沿着 DOM 树向下遍历单一层级。
.find() 方法第一个明显特征是,其接受的选择器表达式与我们向 $() 函数传递的表达式的类型相同。将通过测试这些元素是否匹配该表达式来对元素进行过滤。
展开全部
HTML代码
<div id="test" class=".show">
<input class=".show" type="text" />
</div>
JS代码
$a = $("#test");
$a.find(".show")得到的对象是<input class=".show" type="text" />
也就是说$a.find是在$a这个对象的子对象中找类名为show的元素
而$(".show")会得到两个元素,滴一个就是外层的DIV,第二个是内部的input
所以不用我说了把?
<div id="test" class=".show">
<input class=".show" type="text" />
</div>
JS代码
$a = $("#test");
$a.find(".show")得到的对象是<input class=".show" type="text" />
也就是说$a.find是在$a这个对象的子对象中找类名为show的元素
而$(".show")会得到两个元素,滴一个就是外层的DIV,第二个是内部的input
所以不用我说了把?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是针对的DOM不同。
我想问的是,你为什么不去直接看.find是怎么实现的?源码里有的
我想问的是,你为什么不去直接看.find是怎么实现的?源码里有的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个是直接查找,一个是在$a的结果集下查找
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询