我正在使用node.io抓取网站。目前,我正在通过the scraping tutorial

我正在将each与选择器一起使用

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


但是,当选择器仅选择一个元素时,我收到此问题:

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


这可能是什么原因,以及如何缓解此问题

最佳答案

查看node.io的源代码后,似乎默认情况下它使用node-soupselect而不是jQuery。

尝试设置:

this.options.expand_single_selected = false;


在工作的运行方法中。或者,在创建作业时,对其进行设置

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


these lines in the code,对此进行了检查,它将强制执行正确的行为。

来自node.io的创作者chriso:


  老实说,这是我的设计失败。每当我想从一个集合中只包含一个项目的单个元素时,我就讨厌键入first(),所以我添加了此快捷方式-我知道它会在某个阶段再次被我咬住!


有关如何将其更改为使用jQuery的信息,请参见this project issue,这将解决您的问题,以及解决方法和坚持使用soupselect的好处。



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

它没有.each方法。

改为使用

$('selector').forEach


这是本机JS函数

关于javascript - 在一个元素上调用.each,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15560907/

10-16 20:51
查看更多