Node.js中使用jQuery的做法


Posted in Javascript onAugust 17, 2016

首先,我们得安装jquery, npm install jquery 。安装后的版本是 3.1.0

接着,第一感觉我们会使用 var $ = require('jquery') 。

将以下代码保存为app.js

var $ = require('jquery')
$("body").append("<div>TEST</div>");
console.log($("body").html());

运行 node app.js 。提示错误:

Error: jQuery requires a window with a document

那么我们该怎么做呢?

在npm的jquery安装包首页 ,我们看到可以使用jsdom 进行模拟一个document。

require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
$("body").append("<div>TEST</div>");
console.log($("body").html());
});

运行,结果OK。

上面的代码,有一个让我不太舒服的地方就是要在回调函数中进行操作。那么我们如何做才可以不在回调函数中进行引入jquery呢?

var $ = require('jquery')(require("jsdom").jsdom().defaultView);
$("body").append("<div>TEST</div>");
console.log($("body").html());

一样运行OK。

Javascript 相关文章推荐
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 Javascript
jQuery中delegate和on的用法与区别详细解析
Jan 26 Javascript
jquery datepicker参数介绍和示例
Apr 15 Javascript
javascript常用经典算法实例详解
Nov 25 Javascript
微信小程序前端源码逻辑和工作流
Sep 25 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
Oct 09 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
Mar 04 Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 Javascript
vue 组件的封装之基于axios的ajax请求方法
Aug 11 Javascript
node中的密码安全(加密)
Sep 17 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
Dec 19 Javascript
JavaScript实现多个物体同时运动
Mar 12 Javascript
学习Angular中作用域需要注意的坑
Aug 17 #Javascript
js enter键激发事件实例代码
Aug 17 #Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 #Javascript
js替换字符串中所有指定的字符(实现代码)
Aug 17 #Javascript
在javascript中使用com组件的简单实现方法
Aug 17 #Javascript
模拟javascript中的sort排序(简单实例)
Aug 17 #Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
Aug 17 #Javascript
You might like
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
Python MD5文件生成码
2009/01/12 Python
Python socket编程实例详解
2015/05/27 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Python属性和内建属性实例解析
2020/01/14 Python
pygame实现飞机大战
2020/03/11 Python
keras中的卷积层&amp;池化层的用法
2020/05/22 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
Java如何支持I18N?
2016/10/31 面试题
本科应届生求职信
2014/08/05 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
见义勇为事迹材料
2014/12/24 职场文书
刑事上诉状范文
2015/05/22 职场文书
七一晚会主持词
2015/06/29 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL