CheerioJS 获取特定 <li> 其中 header 文本 'What I Want'

CheerioJS get specific <li> where header text 'What I Want'

我正在尝试获取 header 为 'What I want'

的 li 元素

这是我的代码:

let wants = []
                $$('li').each((wantIdx, wantElement) => {
                    const want= $(relatedArticleElement).text()
                    wants.push(want)
                })

这是我要解析的 HTML:

<div class="side-list-panel">
    <h4 class="panel-header">What I Want</h4>
    <ul class="panel-items-list">
        <li>
            1
        </li>
        <li>
            2
        </li>
        <li>
            3
        </li>
        <li>
                4
        </li>
        <li>
            5
        </li>
    </ul>
</div>
<div class="side-list-panel">
    <h4 class="panel-header">What I don't want</h4>
    <ul class="panel-items-list">
        <li>
            a
        </li>
        <li>
            b
        </li>
        <li>
            c
        </li>
        <li>
            d
        </li>
        <li>
            e
        </li>
    </ul>
</div>

这段代码显然让我得到了页面中的每一个 li 元素,有什么办法我只能得到 'What I Want' panel-header 下的 lis 吗?

如果 Cheerio 支持,您可以尝试 JQuery 的包含示例 $('td:contains("male")')

您可以通过以下方式获得:

$('h4:contains("What I Want") + ul li').get().map(li => $(li).text())