是否有可能在服务器端使用Node.js使用jQuery选择器/DOM操作?
当前回答
据我所知没有。DOM是一个客户端的东西(jQuery不解析HTML,但解析DOM)。
下面是一些当前的Node.js项目:
https://github.com/ry/node/wiki (https://github.com/nodejs/node)
SimonW的djangode非常酷…
其他回答
我的工作代码是:
npm install jquery
然后:
global.jQuery = require('jquery');
global.$ = global.jQuery;
或者如果窗口存在,则:
typeof window !== "undefined" ? window : this;
window.jQuery = require('jquery');
window.$ = window.jQuery;
更新(6月27日-18日):看起来jsdom有一个重大更新,导致原来的答案不再工作。我找到了这个解释如何使用jsdom的答案。我复制了下面的相关代码。
var jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
global.document = document;
var $ = jQuery = require('jquery')(window);
注意:原来的答案没有提到你也需要使用npm install jsdom来安装jsdom
更新(2013年底):官方jQuery团队终于接管了npm上jQuery包的管理:
npm install jquery
然后:
require("jsdom").env("", function (err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
我相信这个问题的答案是肯定的。 https://github.com/tmpvar/jsdom
var navigator = { userAgent: "node-js" };
var jQuery = require("./node-jquery").jQueryInit(window, navigator);
您必须使用新的JSDOM API来获取窗口。
const jsdom = require("jsdom");
const { window } = new jsdom.JSDOM(`...`);
var $ = require("jquery")(window);
首先,安装它
npm install jquery -S
安装后,您可以如下所示使用它
import $ from 'jquery';
window.jQuery = window.$ = $;
$(selector).hide();
你可以查看我写的完整教程:https://medium.com/fbdevclagos/how-to-use-jquery-on-node-df731bd6abc7