如何使用jQuery正确获取父div内部的前4个子元素
问题原因
你原有代码的问题在于直接选中了.entry-text对应的父div元素,此时jQuery集合内仅包含1个元素(父div本身),调用slice(0,4)不会对集合产生过滤效果,因此最终获取到的是父div的全部内部内容。
正确实现代码
你需要先获取父div的所有直接子元素,再对这些子元素做切片处理,最终拼接得到目标内容:
var upperText = jQuery(".entry-text").children().slice(0,4).map(function() { return this.outerHTML; }).get().join('');
实现说明
.children()方法会获取父div下所有直接子元素,对应示例中的6个同级标签:2个h1、3个p、1个h2.slice(0,4)截取索引从0到3的前4个元素,正好是第一个h1、第一个p、第二个h1、第二个p,匹配你要到第二个p标签为止的需求- 后续通过
map遍历取出每个元素的完整HTML(包含自身标签),拼接后就得到目标内容。
如果需要直接操作DOM元素而非获取HTML字符串,可直接使用切片后的jQuery对象:
// 克隆前4个目标元素,可直接插入到其他DOM节点中 var targetElements = jQuery(".entry-text").children().slice(0,4).clone();
内容的提问来源于stack exchange,提问作者elkefreed
相关产品推荐
相关产品推荐

