Javascript 节点可以';无法加载应用程序,因为它不';我不认识jQuery

Javascript 节点可以';无法加载应用程序,因为它不';我不认识jQuery,javascript,jquery,node.js,debugging,visual-studio-code,Javascript,Jquery,Node.js,Debugging,Visual Studio Code,我正在尝试使用Node调试包含一些JQuery的Javascript文件。但加载文件时,它在$上无法识别。 我已经将JQuery安装到本地包(npm安装JQuery-save dev) “npmjquery-version”结果是6.9.8 代码: $("#modalAddRole").on("modal:visible", function () { $("#roleName").val(""); $("#roleName").focus(); }); 操纵dom node.

我正在尝试使用Node调试包含一些JQuery的Javascript文件。但加载文件时,它在$上无法识别。 我已经将JQuery安装到本地包(
npm安装JQuery-save dev

npmjquery-version
”结果是6.9.8

代码

$("#modalAddRole").on("modal:visible", function () {
    $("#roleName").val("");
    $("#roleName").focus();
});
操纵dom

node.js没有dom

您需要创建一个虚拟dom(不显示)

为此,请使用加载网页/应用程序,然后执行所需的任何dom操作代码

示例:

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

JSDOM.fromURL("https://url_To_Your_WebPage_Local_Or_Remote.com")
  .then(dom => {
    const $ = jquery(dom.window);
    //your jQuery code here
  })
我已将JQuery安装到本地包

安装它是不够的。您需要将其加载到您的程序中

const $ = require('jquery');
…然后,
$(“#modalAddRole”)
将不起任何作用,除非您将HTML加载到其中

见:

要使jQuery在节点中工作,需要一个包含文档的窗口。 由于节点中本机不存在这样的窗口,因此可以通过 诸如jsdom之类的工具。这对于测试目的很有用

require("jsdom").env("", function(err, window) {
    if (err) {
        console.error(err);
        return;
    }

    var $ = require("jquery")(window);
});

但这似乎是一种非常复杂的方法来运行调试环境。假设在浏览器中为代码设置了生产环境,那么在浏览器中调试代码将更有意义


如今,浏览器内置了优秀的调试工具,模拟浏览器在默认情况下所做的所有事情可能会使调试更加困难,因为调试环境与生产环境明显不同。

可以添加“jquery语法”吗到节点?看一下@TheRuler的答案-没有“jQuery语法”这样的东西。jQuery只是一个用常规JavaScript语法编写的对象集合。@Quentin这个集合就是语法。但是请把你的opiniion@TheRuler-这不是一种意见。语法有特定的含义。我通常使用浏览器进行调试,但总是对其他方法感到好奇