Javascript 从JSON动态创建表,并在表生成后对列执行操作

Javascript 从JSON动态创建表,并在表生成后对列执行操作,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我试图创建一个动态表,通过Ajax调用获取JSON,用该数据创建一个表。我已经完成了这一部分,但我的主要问题是,其中一个表列将是一个可编辑字段,它应该是通过ajax创建的另一列 我真正的主要问题是如何告诉JQuery我希望它旁边的列更新 <html> <head> <script src="jquery-3.2.1.min.js"></script> <script src="jquery.dataTables.min.js"><

我试图创建一个动态表,通过Ajax调用获取JSON,用该数据创建一个表。我已经完成了这一部分,但我的主要问题是,其中一个表列将是一个可编辑字段,它应该是通过ajax创建的另一列

我真正的主要问题是如何告诉JQuery我希望它旁边的列更新

<html>
<head>
<script src="jquery-3.2.1.min.js"></script>
<script src="jquery.dataTables.min.js"></script>
<script src="jquery.tabletojson.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.dataTables.min.css"/>
</head>
<body>
    <table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
        </tr>
        <tbody></tbody>
    </thead>
<script>
$(document).ready(function() {
    $.get("objects.txt", function(response){
        var obj = jQuery.parseJSON(response);
        $.each(obj.data, function(key,value){
            $("#example tbody").append("<tr>");
            $("#example tbody").append("<td contenteditable=true>"+ value.name +"</td>");
            $("#example tbody").append("<td>" + value.position +"</td>")
            $("#example tbody").append("<td>" + value.Office +"</td>")
            $("#example tbody").append("</tr>");
        });
        //uses a table to json library
        var json = $("#example").tableToJSON();
    });
});

</script>
</body>

名称
位置
办公室
$(文档).ready(函数(){
$.get(“objects.txt”,函数(响应){
var obj=jQuery.parseJSON(响应);
$。每个(对象数据、函数(键、值){
$(“#示例正文”)。附加(“”);
$(“#示例tbody”).append(“+value.name+”);
$(“#示例tbody”).append(“+value.position+”)
$(“#示例tbody”).append(“+value.Office+”)
$(“#示例正文”)。附加(“”);
});
//使用表来创建json库
var json=$(“#示例”).tableToJSON();
});
});

为简单起见,编辑字段“name”时,我希望编辑该行上的office字段。我还不完全确定接下来该怎么办。
谢谢你的帮助

尝试将整个
组合到一个要追加的调用中

var obj={
数据:[
{
姓名:“第1人”,
职位:“主席”,
办公室:“角落”
},
{
姓名:“第二人”,
职位:“开发者”,
办公室:“阁楼”
},
]
};
$(文档).ready(函数(){
$。每个(对象数据、函数(键、值){
$(“#示例tbody”).append(“+value.name+”“+value.position+”“+value.Office+”);
});
});

名称
位置
办公室

DOM是一个文档对象模型,而不是一堆HTML文本。不存在只附加“打开标记”或“关闭标记”的情况。您处理的是作为对象的整个元素。您可以从完整的HTML字符串中创建这些元素对象。@rockstar谢谢您的回复,我想我还不太了解DOM是什么。回到绘图板:)是的,当你明白这一点时,事情会变得更有意义。但只要想想一棵物体树<代码>文档
在顶部,在
HTML
元素(引用为
documentElement
)下,在
元素下,在这些元素下,它们各自的子元素,依此类推。因此,当您创建新元素时,您正在创建一个对象,并将其作为树结构中某个现有元素的新子元素放置。html只是用来告诉浏览器如何创建这些对象。但是,当您自己创建对象时,它们是完整的元素。谢谢您的回答,但问题不是如何创建动态创建的表,而是如何创建动态创建的表,其中一列将设置为contenteditable。然后,当用户在可编辑单元格中键入行单元格的数目时,另一列中的值会更改。查看
change
事件。有了它,您应该能够知道内容何时更改。