也许这是预料之中的,但我发现这很奇怪,因为我现在开始使用 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 中表达式的两条规则:
- 在属性中,您使用引号来输出文字文本,并且当您想要使用变量时,可以将引号省略,并且
- 对于标签的内容,当您希望 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/