我写的函数工作正常,值正确写入我的终端onSubmit,但是我很难拼凑为什么这段代码没有更新我的html。
router.post('/index', function(req, res, next) {
// ...Get form values, do calculations to get toCost value.
console.log('$' + toCost);
$(document).ready(function() {
var output = document.getElementById('cost');
output.innerHTML = toCost;
});
res.location('/');
res.redirect('/');
})
我收到以下错误,jquery加载正常。
$ is not defined
不可否认,这是一个过度设计的节点/快递应用程序。代码片段包含在邮件请求中的路由文件中。
如何将我的价值转移到html上?
玉石布局
extends layout
block content
form(...)
div#cost
答案 0 :(得分:4)
执行此操作的常规方法如下:
router.post('/index', function(req, res) { <<< 'next' removed (only needed if using middleware)
// ...Get form values, do calculations to get toCost value.
console.log('$' + toCost);
res.render('indexTemplate', {cost: toCost}); <<< pass toCost through to jade as 'cost'
});
然后在indexTemplate的jade文件中,你可以像这样引用传入的'cost'变量:
indexTemplate.jade:
extends layout
block content
form(...)
div#cost #{cost} <<< adds the cost variable to page
然后,toCost的值将出现在结果页面中。
服务器端不需要jQuery。
答案 1 :(得分:2)
jQuery是为DOM操作而制作的,服务器上没有DOM。 尝试使用&#39; jsdom&#39;。 jQuery是为客户端脚本编写的,而不是服务器端客户端操作。
答案 2 :(得分:2)
您似乎正在尝试从后端进行客户端更改。它没有那种方式。
您可以在后端创建一个变量来存储计算结果。并通过get
来自客户端
答案 3 :(得分:1)
你想从服务器端的NodeJS到达DOM(在客户端)。它没有那种方式。