Javascript jQuery追加新数据
我使用Node.js、Express.js和MongoDB做了一些练习 目前,我在推送使用jQuery.Ajax创建的新内容时遇到了一个问题 我有一个关于Jade主页的帖子列表:(现在我将写一些简单的东西,但我的帖子包含更多的html元素…) 对于普通表单和回发,这是可以的,因为页面已刷新 如果使用jQuery和Ajax成功,我应该在不刷新页面的情况下添加新帖子。。。 Jade有一个解决方案可以做到这一点,而不用在jQuery中编写整个htmlJavascript jQuery追加新数据,javascript,node.js,express,pug,Javascript,Node.js,Express,Pug,我使用Node.js、Express.js和MongoDB做了一些练习 目前,我在推送使用jQuery.Ajax创建的新内容时遇到了一个问题 我有一个关于Jade主页的帖子列表:(现在我将写一些简单的东西,但我的帖子包含更多的html元素…) 对于普通表单和回发,这是可以的,因为页面已刷新 如果使用jQuery和Ajax成功,我应该在不刷新页面的情况下添加新帖子。。。 Jade有一个解决方案可以做到这一点,而不用在jQuery中编写整个html 您能推荐一种更好的方法吗?Jade是以HTML格式
您能推荐一种更好的方法吗?Jade是以HTML格式编译的,因此没有办法在jQuery中使用Jade模板。但是,您可以做的是用jade编写代码片段,编译它们,并将它们保存到Web服务器(如post_template.html),然后使用jquery加载文件,从加载的文本中创建jquery元素,然后更改新元素中元素的属性和内容。然后将元素附加到页面 这种方法可以避免在jQuery中编写html
//Wrap this in the code that gets updates
$.get( "templates/post.html", function( data ) {
var el = $(data);
//If you want to change specific properties
var title = el.children('h1');
title.text('My new text');
el.appendTo('ul#postList');
});
例如,如果您想在单击时执行此操作,只需将该函数包装在页面上某个元素的单击处理程序中,该元素用于触发新项目。谢谢,我可以请您编写一个关于此的小代码示例吗?添加了一些详细信息。希望这传达了我的想法=)我可以在模板中添加
{stuff}
,以我的新帖子为目标吗?一旦它是jQuery元素,您可以随意设置属性和内容(如设置title.text的示例)。在将其作为文本字符串加载(如示例中所示)后,将其设置为dom元素,然后可以对其应用jquery选择器来设置内容、添加子元素等。很酷,感谢您的帮助。
//Wrap this in the code that gets updates
$.get( "templates/post.html", function( data ) {
var el = $(data);
//If you want to change specific properties
var title = el.children('h1');
title.text('My new text');
el.appendTo('ul#postList');
});