javascript - 如何用jquery动态刷新和显示列表?
问题描述
我正在添加评论部分并且在显示它们时遇到了一些麻烦。这是我的保存方法
[HttpPost]
public JsonResult AddComment(int id_usr,string comment)
{
if (ModelState.IsValid)
{
Comments kom = new Comments();
kom.DateComment = DateTime.Now;
kom.Id_usr = id_usr;
kom.Comment = comment;
db.Comments.Add(kom);
db.SaveChanges();
return Json(kom);
}
return Json(null);
}
获取评论值并保存 onClick
var url = window.location.pathname;
var idurl = url.substring(url.lastIndexOf('/') + 1);
$('#submit').click(function () {
console.log('click')
$.ajax({
url: '/form/AddComment',
method: 'POST',
data: {
comment: $("#Comments_Comment").val(),
id_usr: idurl,
},
success: function (data) {
console.log(data), //to this point all is working
我试图在列表中显示它看起来像:(只需要日期时间和评论文本)
$("#Comments2_Comment").empty();
data.forEach(function (item) {
var rows = "<ul>"
+ "<li>" + item.DateComment + "</li>"
+ "<li>" + item.Comment + "</li>"
+ "</ul>";
$('#Comments2_Comment').append(rows);
});
},
不幸的是,它给了我:“TypeError:data.forEach 不是函数”它应该是什么样子?
我想得到这样的东西
解决方案
好的,这是您可以做什么的简单示例。我刚刚创建了一个 JSON 字符串并将其解析为一个对象以进行演示,但您将使用自己的对象。然后你只需要使用 jQuery 的$.each循环遍历它就可以了。让我知道它是否对您有帮助。
let data = '{"names":[{"name":"Michael S."},{"name":"Jim H."},{"name":"Pam B."}]}'
data = JSON.parse(data)
let str = '';
$.each(data.names, (key, val) => {
str += '<ul><li>' + val.name + '</li></ul>'
})
$('#myDiv').empty().append(str)
li {
background-color: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="myDiv">
</div>
推荐阅读
- aws-lambda - Node.js 从 dynamoDB 获取项目并传递变量
- r - R正则表达式:匹配两个单词彼此靠近的字符串,但有异常
- neo4j - neo4j 连接有困难
- c# - 通过覆盖 BlazorComponent.BuildRenderTree(RenderTreeBuilder builder) 创建组件
- node.js - node js AT 命令返回 +CMS ERROR: 302
- go - 为什么 Go 在名称解析中查询 /etc/hosts 两次?
- java - Java 模块词汇表
- java - OWLApi:无法创建隐士推理器实例
- gradle - Gradle 不会发出 kotlin.js
- php - 停止将重复条目添加到数据库 PHP SQLITE