You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Cheerio从父元素中提取多个子<ul>并包裹在div中?

Cheerio提取指定
    并包裹div的解决方案

核心实现思路

要提取.things容器下所有包含子元素的<ul>,并将它们统一包裹到新的<div>中,核心是遍历目标<ul>元素,获取每个元素的完整HTML代码后再进行拼接包裹。

可行代码示例

const cheerio = require('cheerio');
// 示例HTML结构
const html = `
<div class="things">
  <h5>无关标题内容</h5>
  <ul>
    <li>列表项A</li>
    <li>列表项B</li>
  </ul>
  <ul>
    <li>列表项C</li>
  </ul>
  <ul></ul> <!-- 空列表会被过滤 -->
</div>
`;

const $ = cheerio.load(html);
const validUls = [];

// 遍历所有目标ul,筛选带元素的并收集完整HTML
$('.things ul').each((_, el) => {
  if ($(el).children().length > 0) {
    validUls.push($.html(el));
  }
});

// 拼接并包裹到新div中
const finalResult = `<div>${validUls.join('')}</div>`;

console.log(finalResult);

代码说明

  • 用each()遍历所有.things ul,避开html()仅返回第一个元素的限制
  • 通过children().length > 0过滤空的<ul>标签
  • 调用$.html(el)获取单个<ul>的完整代码(包含标签本身)
  • 将收集到的所有有效<ul>代码拼接后,包裹到新的<div>内

内容的提问来源于stack exchange,提问作者Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:51:13