我正在使用mapCheerio结果列表来返回属性值.我想要的是一个包含属性值列表的变量(在本例中为ID),但我得到的是ID和额外的数据.
以下代码打印ID列表:
let ids = $('[data-profileid]').map(function() {
console.log($(this).attr('data-profileid'))
})
Run Code Online (Sandbox Code Playgroud)
结果:
1012938412
493240324
123948532
423948234
...
Run Code Online (Sandbox Code Playgroud)
但是,以下代码返回ID,但格式不同:
let ids = $('[data-profileid]').map(function() {
return $(this).attr('data-profileid')
})
console.log(ids)
Run Code Online (Sandbox Code Playgroud)
结果:
...
'69': '234234234,
'70': '9328402397432',
'71': '1324235234',
options:
{ withDomLvl1: true,
normalizeWhitespace: false,
xmlMode: false,
decodeEntities: true },
_root:
{ '0':
{ type: 'root',
name: 'root',
attribs: {},
...
Run Code Online (Sandbox Code Playgroud)
什么是这些额外的数据?当然不是必需的.我宁愿只有一个普通的数组.
Jac*_*wes 16
由于返回值是一个包含数组的jQuery对象,因此在结果上调用.get()以使用基本数组是很常见的.
所以它看起来应该工作:
let ids = $('[data-profileid]').map(function() {
return $(this).attr('data-profileid')
}).get()
Run Code Online (Sandbox Code Playgroud)
所有这些额外的数据是什么?这当然不是必需的。我宁愿只有一个普通的数组。
Cheerio 有一个流畅的API,这意味着它的大部分函数都会返回一个对象,在该对象上可以链接其他函数。如果map只是返回一个“普通数组”,那么您将无法对结果调用其他 Cheerio 函数。有没有很多的方式,你可以连附加功能调用到的结果你的 map电话,它返回一个字符串数组,但Cheerio的开发人员(以从jQuery的开发人员的提示),选择保持一致的API,而不是辣椒它与特别案例。
但是,如果您想要一个普通数组,Cheerio 为您提供了一个方便的toArray函数:
let ids = $('[data-profileid]').map(function() {
return $(this).attr('data-profileid')
});
console.log(ids.toArray());
// => [ '1012938412', '493240324', '123948532', '423948234' ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3258 次 |
| 最近记录: |