资讯专栏INFORMATION COLUMN

NPM酷库:jsdom,纯JS实现的DOM

tylin / 3508人阅读

摘要:酷库,每天两分钟,了解一个流行库。昨天认识了一个在环境下操作的库,实现了接口,用起来十分方便。今天,我们要学习的就是一个纯实现的,可以在环境中模拟出环境,像这样对依赖的库就可以在中运行了。

NPM酷库,每天两分钟,了解一个流行NPM库。

昨天认识了一个在Node.js环境下操作HTML的库 cheerio,cheerio实现了jQuery接口,用起来十分方便。为什么不直接用jQuery呢?因为Node.js环境中没有实现DOM对象。

jsdom

今天,我们要学习的jsdom就是一个纯JS实现的DOM,jsdom可以在Node.js环境中“模拟出”DOM环境,像jQuery这样对DOM依赖的库就可以在Node.js中运行了。

const jsdom = require("jsdom");
const { JSDOM } = jsdom;

const dom = new JSDOM(`

Hello world

`); dom.window.document.querySelector("p").textContent; // "Hello world" const $ = require("jquery")(dom.window); $("p").text(); // "Hello world"

上述代码中,首先实例化一个JSDOM对象dom,实例化参数就是我们要操作的HTML字符串,然后就可以通过 dom.window.document 等DOM标准接口访问HTML内容了。

最后两行,我们引入了jQuery库,并将jQuery的window参数绑定到dom对象上,我们就可以用jQuery来访问HTML文本。

如果你的需求是简单地操作HTML文本,我建议你仍然使用更加轻量的cheerio库,但是如果cheerio满足不了你的需求,或者你为了像兼容jQuery一样兼容某些依赖DOM的npm库,你可以尝试jsdom来解决你的问题。

参考资料

jsdom: https://github.com/tmpvar/jsdom

cheerio: https://github.com/cheeriojs/...

DOM: https://dom.spec.whatwg.org

欢迎关注公众号:梁兴臣

每天了解一个NPM库,一年后成为Node.js高手

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110106.html

相关文章

  • NPM酷库jsdomJS实现DOM

    摘要:酷库,每天两分钟,了解一个流行库。昨天认识了一个在环境下操作的库,实现了接口,用起来十分方便。今天,我们要学习的就是一个纯实现的,可以在环境中模拟出环境,像这样对依赖的库就可以在中运行了。 NPM酷库,每天两分钟,了解一个流行NPM库。 昨天认识了一个在Node.js环境下操作HTML的库 cheerio,cheerio实现了jQuery接口,用起来十分方便。为什么不直接用jQuery...

    13651657101 评论0 收藏0
  • jsdom 中文文档(翻译)

    摘要:我们将用户可控制的控制台称为虚拟控制台,以便将其与和页面内部的区分开来。同样,目前在中是不能够处理相关信息的比如设置这样做会导致虚拟控制台发出,说明此功能未实现,并且没有任何变化也将不会有新的或对象,并且现有对象仍保持当前所有相同的属性值。 jsdom是一个纯粹由 javascript 实现的一系列 web标准,特别是 WHATWG 组织制定的DOM和 HTML 标准,用于在 node...

    SHERlocked93 评论0 收藏0
  • 合理使用函数式编程

    摘要:但是,如果我们使用过多的函数式编程的抽象概念,我们的函数式编程也会非常难以理解。相比于不太合理的纯函数式编程,我们的代码更加可读理解和修改,这也是我们重构代码的目的。 本文是篇译文,原文链接An Introduction to Reasonably Pure Functional Programming,不当之处还请指正。 一个好的程序员应该有能力掌控你写的代码,能够以最简单的方法使你...

    张率功 评论0 收藏0
  • NPM酷库:cheerio,服务端jQuery接口实现

    摘要:酷库,每天两分钟,了解一个流行库。是前端操作的利器,我们通过的接口可以方便地访问修改树中的节点和内容。但是很遗憾,并不能在服务端运行,因为严重依赖,而环境中是没有集成的。方法加载一段格式的字符串,然后返回一个实现了接口的对象。 NPM酷库,每天两分钟,了解一个流行NPM库。 jQuery 是前端DOM操作的利器,我们通过jQuery的接口可以方便地访问、修改DOM树中的节点和内容。 有...

    Riddler 评论0 收藏0
  • 使用 AVA 做自动化测试

    摘要:单元测试,测试一个简单的组件。接口测试,用户信息接口测试。学习借鉴,一些使用做测试的开源项目。这里使用到的内置断言断言结果值等于我们想要的预期值,则测试通过。在里放入一个函数,函数自动执行,里面执行的结果必须抛出错误,则测试通过。 目录 1、为什么选择 AVA ?2、API 概览。3、准备工作。4、单元测试,测试一个简单的工具函数。5、使用 Promise、Async/await、Ob...

    Cruise_Chan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<