将jquery与nodejs一起使用时的基本错误

时间:2013-12-30 02:25:02

标签: jquery node.js

我正在尝试在我的项目中使用一些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());

4 个答案:

答案 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,因为它明确要求windowwindow.document。试试cheerio

答案 2 :(得分:2)

我遇到了同样的问题。为了解决这个问题,我安装了旧版本的jquery: npm install jquery@1.8.3

答案 3 :(得分:1)

它曾经工作好几个月。但后来他们改变了一些东西,现在却没有改变。我可以在没有窗口的情况下运行jquery就好了,它在节点js上运行得很好。但由于某种原因没有最新版本。真的很奇怪。

我们要做的就是:

$ = require(“jquery”); $(“..)。find(”。message“)。html(”Hello World!“);