我正在尝试在我的项目中使用一些jquery,一旦我尝试使用它,我在复制的代码中遇到错误,无法获得任何谷歌帮助
var jquery = require('jquery');
var $ = jquery.create();
^
TypeError: Object function ( w ) {
if ( !w.document ) {
throw new Error( "jQuery requires a window with a document" );
}
return factory( w );
} has no method 'create'
长篇故事:
我正试图从我的一些HTML中获取明文。
我希望使用.text()
函数来实现这一点。
我的结果代码应为:
console.log($(data).text());
答案 0 :(得分:6)
尝试:
var jsdom = require("jsdom").jsdom;
var markup = '<html><body><h1 class="example">Hello World!</h1><p class="hello">Heya Big World!</body></html>';
var doc = jsdom(markup);
var window = doc.parentWindow;
var $ = require('jquery')(window)
console.log($('.example').text());
基本上你可以使用jsdom模块从你的标记中创建一个DOM,然后就像在浏览器中使用jquery一样使用它。
答案 1 :(得分:3)
您不能在服务器上使用jquery,因为它明确要求window
和window.document
。试试cheerio
答案 2 :(得分:2)
我遇到了同样的问题。为了解决这个问题,我安装了旧版本的jquery:
npm install jquery@1.8.3
答案 3 :(得分:1)
它曾经工作好几个月。但后来他们改变了一些东西,现在却没有改变。我可以在没有窗口的情况下运行jquery就好了,它在节点js上运行得很好。但由于某种原因没有最新版本。真的很奇怪。
我们要做的就是:
$ = require(“jquery”); $(“..)。find(”。message“)。html(”Hello World!“);