javascript - jQuery 替换 Node+jade 组合中的 Span

标签 javascript jquery html node.js pug

也许这是预料之中的,但我发现这很奇怪,因为我现在开始使用 jQuery。

所以,我正在使用node和jade编写一个应用程序。在index.jade 中,我有一个以下形式的声明

  p Welcome subscriber 
      span(id="subscriber") someID

现在,一旦客户端和服务器之间建立连接,服务器就会发送一 strip 有一些数据的欢迎 JSON 消息。其中之一是上面我要替换的客户端的 id。一旦客户端收到欢迎 JSON 消息,它就会初始化适当的结构,然后我调用函数 loadStats:

function loadStats() {
  var myText = "" + myData.id + ".";
  $('#subscriber').text(myText);
  $('#subscriber').html(myText);
};

在屏幕中,我可以看到文本“someID”已被客户端的 ID 替换。然而,当我实际检查我正在查看的页面的 html 代码时,我看到了以下形式的语句:

<p>Welcome subscriber <span id="subscriber">someID</span></p>

换句话说,在实际的 HTML 代码中,文本“someID”并未被替换。这是预期的事情吗?更换是如何进行的?此外,似乎使用任一语句

  $('#subscriber').text(myText);
  $('#subscriber').html(myText);

在屏幕上提供复制,但不复制屏幕上显示的实际 html 内容。这是正确的行为吗?根据我的理解(和期望),.text() 用特定的 id 替换元素的视觉数据,.html() 替换内容。我错过了什么吗?

提前致谢。 jQuery 菜鸟在这里。

最佳答案

pug 中表达式的两条规则:

  1. 在属性中,您使用引号来输出文字文本,并且当您想要使用变量时,可以将引号省略,并且
  2. 对于标签的内容,当您希望 pug 计算表达式时,可以使用等号,或者如果您需要文字文本,则不要放置任何内容

因此,考虑到这些规则,查看您的代码,您将输出属性“subscriber”作为文字,“someId”作为文字。

span(id="subscriber") someID

结果:

<span id="subscriber">someId</span>

您希望两者都是动态的,因此删除属性中的引号并在元素后面放置一个等号:

span(id= subscriber)= someID

这将动态地用变量替换两者。

关于javascript - jQuery 替换 Node+jade 组合中的 Span,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069590/

相关文章:

javascript - 使用 jQuery 进行 HTML 表头分组

php - 如何更改 HTTP GET 请求的最大长度以存储参数?是否可以?

html - 仅将没有 html 的网页中的文本复制到 Gmail 正文电子邮件中

java - 使用 javascript 命令重新渲染字段

javascript - 将日期列表添加到数组,验证并获取最大值

javascript - 如何弹出消息并将过期时间设置为存储在本地存储中的消息状态?

php - 无法加载 localhost php 文件的源代码

jquery - ASP.NET MVC AsyncController 在等待时继续浏览

jquery - 为什么这个 jquery.hide() 函数不能作用于这个 UL 元素?

javascript - 如何在页面顶部隐藏导航栏