0

node.io用来抓取网站。目前我正在学习抓取教程

我正在使用each选择器

$('selector').each( ... , function () { ... } );

However when the selector selects only one element, I am receiving this problem:

TypeError: Object #<Object> has no method 'each'

这可能是什么原因,我该如何缓解这个问题

4

2 回答 2

4

查看node.io's source code 后,似乎默认情况下它使用node-soupselect而不是 jQuery。

尝试设置:

this.options.expand_single_selected = false;

在你的工作的运行方法中。或者,当您创建作业时,将其设置为

new nodeio.Job({timeout:10,expand_single_selected:false}, methods);

这由代码中的这些行检查,它将强制执行正确的行为。

来自node.io的创造者chriso

老实说,这是我的设计失败。每次我想要一个集合中只有一个项目的单个元素时,我都厌倦了键入 first(),所以我添加了这个快捷方式 - 我知道它会在某个阶段回来咬我!

请参阅此项目问题,了解如何将其更改为使用jQuery它来解决您的问题,以及坚持使用soupselect.


根据您的链接,当您使用时,您$不是在使用 jQuery,而是在使用node-soupselect

它没有.each方法。

而是使用

$('selector').forEach

哪个是原生 JS 函数

于 2013-03-22T01:13:31.240 回答
0

如果您将单个元素放在 [brackets] 中,它将充当单个项目数组并摆脱此问题

于 2013-03-22T01:00:21.753 回答