Cheerio错误,未定义不是函数//这是正确的方法吗?

时间:2016-02-28 08:42:40

标签: node.js cheerio

当尝试运行代码时,我不断收到错误$.find('.market_listing_item_name_block').each() - undefined不是一个函数,指向find。我认为发现是cheerio中的一个功能?公平地说,我不确定我是否正确行事,这是我的代码:

var cheerio = require('cheerio')
$ = cheerio.load('#searchResultsRows')
var url = 'http://steamcommunity.com/market/search?appid=730'
xhr.get(url).success(function(r){
    $.find(".market_listing_item_name_block").each(function(){
        var name = $(this).find(".market_listing_item_name").text();
        console.log(name)
    })
})

xhr是一个基本上像AJAX一样的对象。

我之前在Chrome中做的方式是:

var url = 'http://steamcommunity.com/market/search?appid=730'
var itemDiv = $("<div></div>")
$.get(url).success(function(r){
    d = $(r).find('#searchResultsRows')
    itemDiv.append(d)
})

然后:

itemDiv.find(".market_listing_item_name_block").each(function(){
   var name = $(this).find(".market_listing_item_name").text();
   console.log(name) // would normally do other things, but for the purpose of this post, i'm just console logging the name
})

我怎么能在node / cheerio中重新创建^?我相信我显然错过了几个步骤。任何帮助都非常感谢,谢谢。

1 个答案:

答案 0 :(得分:2)

获得元素时,需要在进行进一步选择之前使用$包裹该元素

const $ = Cheerio.load(body)
const list = $('div.titles li')

list.each((index, li) => {
  const title = $(li).find('p.title').text()

  console.log(title)
})