Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery追加新数据_Javascript_Node.js_Express_Pug - Fatal编程技术网

Javascript jQuery追加新数据

Javascript 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格式

我使用Node.js、Express.js和MongoDB做了一些练习

目前,我在推送使用jQuery.Ajax创建的新内容时遇到了一个问题

我有一个关于Jade主页的帖子列表:(现在我将写一些简单的东西,但我的帖子包含更多的html元素…)

对于普通表单和回发,这是可以的,因为页面已刷新

如果使用jQuery和Ajax成功,我应该在不刷新页面的情况下添加新帖子。。。 Jade有一个解决方案可以做到这一点,而不用在jQuery中编写整个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');
});