本文主要是介绍jQuery 子元素选择器 find() 和 children(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在前面的文章中多次提到了 子元素 和 直接子元素,本篇文章来说明这两者的区别。
<div id="list"><div name="a"><div name="c">web前端</div><div name="d">梦之蓝</div></div><div name="b">web-7258</div>
</div>
上面的HTML代码中,通过name值给div命名
console.log($("#list div").size()); //4
console.log($("#list>div").size()); //2
小编看过太多的开发者只使用第一种,获取方式,未使用第二种方式。但是这两种方式的差别非常明显。第一种获取到的元素有4个,第二种获取到的元素只有2个,下面的代码来查看他们获取到元素的区别
$("#list div").each(function (index,el) {console.log(el); //[a,c,d,b]
});$("#list>div").each(function (index,el) {console.log(el); //[a,b]
});
第一种中获取到了 #list 下所有的 div 元素,而第二种只获取了 #list 下第一级的 div 元素。这就是 子元素 与 直接子元素 的区别。在当前元素下面的元素都属于当前元素的子元素,只有当前元素下面第一级的元素才能是 直接子元素。
写代码时一定要明确自己的元素级别,可能当时自己的代码并没有报错,但代码健壮性是很差的,如上面的示例代码,获取元素时一定要明确选择正确的元素,避免获取无效的元素节点,多层级的查找dom元素使性能低下。
$("ul li")
经常看到有人通过这种方式获取ul下的li元素,好像都是能正常获取的,严格意义上来说是错误的,因为在 ul 下了直接子元素一定会是 li(如果不是建议去好好学一下HTML入门)。
假如当前是一个这样的代码结构
<ul><li><ul><li></li></ul></li>
</ul>
这种结构在 树形列表 中是常用的。如果似上面的获取元素方式,肯定是出错误。
jQuery还专门提供了子元素的获取方式,find() 和 children()
$("#list").find("div"); //子元素
$("#list").children("div"); //直接子元素
find() 选择器使用者太多太多,而 children() 却很少,希望各位读者阅读完本篇文章后能认识 子元素 与 直接子元素 的区别,选择正确的选择器,写出健壮性强,阅读性好的美丽代码。
作者:黄河爱浪 QQ:1846492969,邮箱:helang.love@qq.com
微信公众号:
web-7258
,本文原创,著作权归作者所有,转载请注明原链接及出处。更多精彩文章,请扫下方二维码关注我的公众号
这篇关于jQuery 子元素选择器 find() 和 children()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!