为什么以及何时应该使用children()方法?

时间:2014-11-22 16:56:03

标签: jquery

为什么以及何时应该使用children()方法?

我想知道为什么我更喜欢使用children()方法而不是仅仅使用选择器中的子对象来调用对象。下面是一个简单的例子,第一个是child()方法,后者没有:

$(".hello").children().on("click", function) { // Do something };

$(".hello world").on("click", function) { //Do something };

我最近开始使用JQuery,请原谅我这个初学者的问题。

2 个答案:

答案 0 :(得分:1)

下面你要选择.hello中任何元素的所有子元素,不管这些子元素有什么类。

$(".hello").children().on("click", function) { // Do something };

通过以下选择,您将选择具有.world类的所有子元素。

$(".hello world").on("click", function) { //Do something };

我似乎还记得你描述和使用的两种方法之间存在性能差异.find() - 生病尝试挖掘它

编辑:正如@banana所述 - 使用find()遍历树,而children()只查看第一级后代。

答案 1 :(得分:0)

正如jQuery api网站上所述:.children()

"给定一个表示一组DOM元素的jQuery对象,.children()方法允许我们在DOM树中搜索这些元素的子元素,并从中构造一个新的jQuery对象。匹配元素。 .children()方法与.find()的不同之处在于.children()只沿DOM树向下移动一个级别,而.find()可以遍历多个级别以选择后代元素(孙子等)。另请注意,与大多数jQuery方法一样,.children()不返回文本节点;要获取包括文本和注释节点在内的所有子节点,请使用.contents()。 .children()方法可选地接受我们可以传递给$()函数的相同类型的选择器表达式。如果提供了选择器,则会通过测试元素是否与之​​匹配来过滤元素。"

.children()移动1级,仅直接子节点,并且不返回文本节点。直接选择时,将像.find()函数一样工作,并搜索整个后代元素树。

何时以及为何使用它完全取决于您。做任何最适合你的事情,这个问题的答案将不再是关于stackoverflow的主题,因为它主要基于意见。