2017-12-10jQuery 获取子元素,children()方法和find()方法

您现在的位置是: 首页 > WEB前端 > jQuery 获取子元素,children()方法和find()方法

359次阅读


jQuery获取子元素的方法有2种,分别是children()方法和find()方法。

children()方法:获取该元素下的直接子集元素

find()方法:获取该元素下的所有(包括子集的子集)子集元素,通过选择器、jQuery 对象或元素来筛选。

children和find的类似点:children() 和 find() 方法类似,不过后者只沿着 DOM 树向下遍历单一层级

children和find的区别:children只会查找直接子集,而find会跨越层级查找,一直找到没有为止。


请注意,与大多数 jQuery 方法一样,.children() 不返回文本节点;如果需要获得包含文本和注释节点在内的所有子节点,请使用 .contents()。


以下面HTML代码为例:

<ul>

  <li>list1

    <ul>

      <li>list1-1</li>

      <li>list1-2</li>

    </ul>

  </li>

  <li>list2

    <ul>

      <li>list2-1</li>

      <li>list2-2</li>

    </ul>

  </li>

  <li>list3

    <ul>

      <li>list3-1</li>

      <li>list3-2</li>

    </ul>

  </li>

</ul>


1)children()方法获取ul下面直接子集元素li:$("ul").children("li")

需要注意的是,如果li元素下还有li元素,children方法将不会被获取。我们可以用length来测试获取的个数“$("ul").children("li").length”,最后输出结果为3


2)find()方法获取ul下所有元素li:$("ul").find("li")

需要注意的是,find方法会无限循环查找ul标签节点下的li,一直找到没有为止。用length来测试获取个数“$("ul").find("li").length”,最后输出结果为9

$('li.item-ii').find('li') 等价于 $('li', 'li.item-ii')