【问题标题】:'$' confusion on cheerio api'$' 对 Cheerio api 的混淆
【发布时间】:2018-08-16 16:39:12
【问题描述】:

我对在节点 Cheerio api 中使用 $ 符号感到困惑

例如在下面的代码中

if(!error){
        var $ = cheerio.load(html);

    var title, release, rating;
    var json = { title : "", release : "", rating : ""};

    $('.header').filter(function(){
        var data = $(this);
        title = data.children().first().text();            
        release = data.children().last().children().text();

        json.title = title;
        json.release = release;
    })

为什么将cheerio.load(html) 值设置为$ 是一种好习惯? 另外我们如何在不导入 jquery 的情况下使用$(.header)

【问题讨论】:

  • $ 是一个变量,就像任何变量一样,你可以在里面放任何东西
  • cheerio 是 jquery 的一个版本。所以你在某种意义上是在导入jquery
  • Cheerio 不是 jQuery 的一个版本。它更像是一个 jQuery 仿制品。

标签: javascript jquery node.js cheerio


【解决方案1】:

Cheerio 实现了 jQuery 的子集。所以,现在我们知道传统上 jQuery 使用 $ 进行命名空间,所以开发人员习惯了 $('selector') 语法。

现在,由于 Cheerio 实现了 jQuery 的核心功能并且我们使用它而不是 jQuery,所以使用 $ 作为命名空间是有意义的。开发者熟悉,语法相同。

当你导入 jQuery 时,jQuery 对象被分配给$。当您使用cheeeio 时,cheeerio 对象被分配给$

我不会说这是一个好习惯。更像是一个约定。现在,我看到各种应用程序不使用$,而是使用jQuery

对于您的第二个问题,我们将 jQuery 替换为 cheerio。因此,当您使用$('.header') 时,您没有使用jQuery,而是使用cheerio。

【讨论】:

    猜你喜欢
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多