【问题标题】:Change the class of a div to that of a different CSS class using node.js使用 node.js 将 div 的类更改为不同 CSS 类的类
【发布时间】:2016-10-26 23:41:11
【问题描述】:

我有一个 index.html 文件,其中包含一些默认为绿色的框。我想使用 node.js 根据我计划从其他 API 获得的值(基本上是 0 或 1)来更改这些框的颜色(通过将 div 类从“红色”更改为“绿色”)。

<div id="JIRA" class="small-box bg-green">

我希望能够读取 index.html,然后更改:

class="small-box bg-green">

class="small-box bg-red">

然后在将更改发送给用户之前将更改写回 index.html。我会为此使用客户端 js,但出于安全原因,我无法公开 API 令牌。

我已经看到 Cheerio 和 jsdom 用于解析和操作 HTML,但我一直无法找到如何更改实际类的示例。 node.js 可以做到这一点吗?

【问题讨论】:

  • 为什么要使用node.js(服务器端语言)来更新live view,使用JS和ajax。
  • 您是在使用像 Express 这样的框架来构建和交付您的页面,还是您自己使用 Node 来处理所有这些?
  • 您使用什么来发送 html 文件?.. 如果您使用节点然后看看说 Express,在这里您可以选择许多不同的模板引擎,这些非常适合注入条件 HTML。有翡翠/小胡子等。这是你的选择。也像@tleon 说的那样,还有 Ajax 路线..
  • @tleon 我需要在服务器端执行此操作,因为我发出此请求的 API 需要 API 令牌。他们不提供只读 API 令牌,所以我希望保留令牌服务器端,从服务器发出请求,然后将相关的 html 提供给用户。
  • @hungerstar 我正在使用与 Express 兼容的 HTML/CSS 模板。我对这种开发很陌生,所以我不确定这个模板到底能做什么。

标签: javascript jquery html css node.js


【解决方案1】:

我在最初的问题中并没有真正提供足够的信息,但我能够弄清楚如何做我想做的事情,所以我想我会发布我遇到的问题。

请注意,这需要在服务器端而不是在客户端 JS 中完成的唯一原因是因为我需要将 API 请求发送到需要 API 令牌的服务。该服务不提供提供只读 API 令牌的能力,因此在客户端 Javascript 中公开主 API 令牌是一个很大的安全问题(任何使用开发人员工具的人都可以完全控制该服务)。

使用 express 作为我们的节点服务器来提供静态服务,我为 /getStatus 添加了一个app.get 行: app.get('/getStatus', function (req, res){ .... }); 该函数会向相关 API 发出请求,并返回 json 响应。

其余部分由客户端 Javascript 完成。 $(document).ready(function(){ $.get('http://' + window.location.hostname + ':8080/getStatus', function(status){ $('response').html(status); 从那里的最后一行开始,status 将包含 JSON 对象以及我需要的相关详细信息。然后就是用document.getElementById(id).className = "the class name";

感谢那些发布 cmets 和答案的人。

【讨论】:

    【解决方案2】:

    相反,只需使用模板引擎 Lookup Pug Templating Engine

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-01
      • 2018-11-26
      • 2010-10-11
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多