['http://www.1.com', 'http://www.2.com', 'http://www.3.com']我想从以下字符串中获取。
const cheerio = require('cheerio')
const htmlStr = `
<div>
<div class="item">
<a href="http://www.1.com"></a>
</div>
<div class="item">
<a href="http://www.2.com"></a>
</div>
<div class="item">
<a href="http://www.3.com"></a>
</div>
</div>
`
const $ = cheerio.load(htmlStr)
Run Code Online (Sandbox Code Playgroud)
最初,我认为$(div.item a)会返回一个元素数组。所以我尝试了:
const urls = $('div.item a').map(x => x.attr('href'))
Run Code Online (Sandbox Code Playgroud)
它失败了。
似乎$('div.item a')返回一个object.
怎么做?
谢谢!
Li3*_*357 12
首先,cheerio 的map函数采用回调,其中第一个参数是当前索引,而不是必须再次包装在中的元素$(\xe2\x80\xa6)。接下来,map返回一个“jQuery 集”,而不是普通的 JavaScript 数组。使用toArray:
$(\'div.item a\').map((i, x) => $(x).attr(\'href\')).toArray()\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
10436 次 |
| 最近记录: |