jQuery替换node + jade combo中的span

时间:2013-09-28 17:14:14

标签: javascript jquery html node.js pug

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

所以,我正在使用node和jade编写应用程序。在index.jade中我有一个表单

的声明
  p Welcome subscriber 
      span(id="subscriber") someID

现在,一旦在客户端和服务器之间建立连接,服务器就会发送包含一些数据的欢迎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新秀在这里。

1 个答案:

答案 0 :(得分:1)

关于帕格表情的两个规则:

  1. 在属性中,您使用引号输出文本文本,并在要使用变量时省略引号,并且
  2. 对于标签的内容,当您想让pug评估表达式时,请使用等号;或者,如果要使用文字文本,请不要添加任何内容

因此,请牢记这些规则,查看代码,您将输出属性“ subscriber”作为文字,并输出“ someId”作为文字。

span(id="subscriber") someID

结果:

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

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

span(id= subscriber)= someID

这将动态地将两个变量替换为变量。