Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js中的jQuery方法_Javascript_Jquery_Html_Css_Node.js - Fatal编程技术网

Javascript Node.js中的jQuery方法

Javascript Node.js中的jQuery方法,javascript,jquery,html,css,node.js,Javascript,Jquery,Html,Css,Node.js,刚开始在node.js中编码。我做了几个页面(登录、注册、博客等) 如果我想要一种效果,其中: 1.我将鼠标悬停在“新闻”按钮上,一个滑块向下显示 修改ejs标签中的图像(例如)(我认为我不能在这里使用css) 如果用户单击按钮(或任何其他事件),则执行某些操作 现在在我的项目中,如果用户单击“登录”,它会将他带到“/登录”页面。 我在谷歌上搜索了“弹出式登录表单”,大多数教程都是针对jQuery的 在使用jQuery时,它给出了一个错误:“jQuery需要一个窗口”,所以我使用了jsdom,但

刚开始在node.js中编码。我做了几个页面(登录、注册、博客等)

如果我想要一种效果,其中: 1.我将鼠标悬停在“新闻”按钮上,一个滑块向下显示

  • 修改ejs标签中的图像(例如)(我认为我不能在这里使用css)

  • 如果用户单击按钮(或任何其他事件),则执行某些操作

  • 现在在我的项目中,如果用户单击“登录”,它会将他带到“/登录”页面。 我在谷歌上搜索了“弹出式登录表单”,大多数教程都是针对jQuery的

    在使用jQuery时,它给出了一个错误:“jQuery需要一个窗口”,所以我使用了jsdom,但改用了cheerio(许多用户推荐)。我浏览了文档,但找不到“单击”事件方法。 如何完成上述任务


  • 注意:我不要求为上述任务提供特定代码。我已经用jQuery在前端完成了这些工作。我只想知道如何开始使用node.js中的jQuery。

    这里您将node js用作Web服务器,它只负责为您提供所需的服务。从页面到静态资产包括图像、字体、css甚至js文件

    例如,当您希望用户登录时,您已将您的索引页面配置为具有“登录”链接,该链接将用户带到/login路径:

    app.get('/', function(req, res){
      res.render('index', { title: 'home' });
    });
    
    index.ejs

    <!DOCTYPE html>
    <head>
      <title><%= title %></title>
    </head>
    <html>
      <body>
        <a class="btn" href="/login">LOGIN</a>
      </body>
    </html>
    
    <!DOCTYPE html>
    <head>
      <title><%= title %></title>
      <link rel="stylesheet" href="/css/bootstap.css">
      <link rel="stylesheet" href="/css/myStyles.css">
    </head>
    <html>
      <body>
        <div id="#modal" class="modal fade"></div>
        <a class="btn" href="/login">LOGIN</a>
    
        <!-- scripts -->
        <script src="/js/jQuery.js"></script>
        <script src="/js/bootstrap.js"></script>
        <script src="/js/myScripts.js"></script>
    
        <!-- client-side tempates -->
        <script type="text/template" id="modalTemplate">
          <div class="modal-dialog">
            .
            <!-- look into bootstrap documentation -->
            .
          </div>
        <script>
      </body>
    </html>
    
    并使用所需的样式和脚本将其设置为公用文件夹:

    /public
      /css
        bootstrap.css
        myStyles.css
      /js
        jQuery.js
        bootstrap.js
        myScripts.js
      /images
      /fonts
    
    并在index.ejs中包含以下样式和脚本:

    index.ejs

    <!DOCTYPE html>
    <head>
      <title><%= title %></title>
    </head>
    <html>
      <body>
        <a class="btn" href="/login">LOGIN</a>
      </body>
    </html>
    
    <!DOCTYPE html>
    <head>
      <title><%= title %></title>
      <link rel="stylesheet" href="/css/bootstap.css">
      <link rel="stylesheet" href="/css/myStyles.css">
    </head>
    <html>
      <body>
        <div id="#modal" class="modal fade"></div>
        <a class="btn" href="/login">LOGIN</a>
    
        <!-- scripts -->
        <script src="/js/jQuery.js"></script>
        <script src="/js/bootstrap.js"></script>
        <script src="/js/myScripts.js"></script>
    
        <!-- client-side tempates -->
        <script type="text/template" id="modalTemplate">
          <div class="modal-dialog">
            .
            <!-- look into bootstrap documentation -->
            .
          </div>
        <script>
      </body>
    </html>
    
    
    .
    .
    
    这些是我们的原则。正如您所看到的,当点击“登录”时,我们会将他们发送到登录页面,但如果他们有一个现代浏览器(启用javascript),我们会向他们显示一个模式登录表单


    在这里,我们手动完成了所有客户端编码。您的myScripts.js文件越来越大,客户端模板也越来越大。这就是为什么会有,其他客户端框架和工具,比如,…

    jquery在浏览器中非常有用——我认为它在服务器上的用处是零——所以我要说,不要将jquery用于服务器端代码我同意@jaromanda。我曾经做过一些Node.js screen scrape类型的项目,其中我使用了一个名为cheerio()的NPM包,它基本上是服务器端Node的jQuery。jsnodejs本身没有网页显示,因此没有与用户的直接交互,所以很不清楚您在Node.js中使用jQuery做什么。一种猜测是,您应该在nodejs服务器发送到浏览器的网页中嵌入常规的客户端jQuery,然后浏览器将运行它。记住,网页永远不会在NodeJ上运行。nodejs的工作是将网页发送到浏览器,它们的Javascript在浏览器中运行,就像所有客户端Javascript一样。起初,我以为您可能在尝试刮取一些数据,并在刮取的数据上使用jQuery,但当您开始谈论单击按钮时,听起来像是客户端界面和操作。如果您确实想在服务器端“运行”web页面,那么您需要一个模拟浏览器的环境。有一些npm模块可以部分做到这一点。当你说“我应该在网页中嵌入常规客户端jQuery”时,你的意思是创建一个.js文件,在其中编写jQuery代码,然后在我的app.js(服务器端文件)中需要它吗?这是一个非常详细的答案,谢谢!但是在myScripts.js中,我有:`$(“输入#提交”)。在(“点击”上,function(){var imageURL=$(“#图像”).text();console.log(imageURL);}`它不起作用!一个简单的console.log工作得很好!在网页上,我无法操作数据,只有console.log起作用!有什么建议吗?是{title:“home”}必要?什么类型的数据?这些数据来自何处以及您如何使用它们?然后我们可以决定如何操作它们。请提供一个简单的例子,让我们回答您的具体问题。我有一个表单,用户在(“input#image”)中输入图像url,我想对url做些什么(将其设置为背景等),但即使是e.preventDefault()也不起作用。终于让它起作用了!我以前没有使用$(document).ready(function(){..})。我太笨了!非常感谢你帮了我这么多!
    <!DOCTYPE html>
    <head>
      <title><%= title %></title>
      <link rel="stylesheet" href="/css/bootstap.css">
      <link rel="stylesheet" href="/css/myStyles.css">
    </head>
    <html>
      <body>
        <div id="#modal" class="modal fade"></div>
        <a class="btn" href="/login">LOGIN</a>
    
        <!-- scripts -->
        <script src="/js/jQuery.js"></script>
        <script src="/js/bootstrap.js"></script>
        <script src="/js/myScripts.js"></script>
    
        <!-- client-side tempates -->
        <script type="text/template" id="modalTemplate">
          <div class="modal-dialog">
            .
            <!-- look into bootstrap documentation -->
            .
          </div>
        <script>
      </body>
    </html>