Javascript 如何通过对象循环生成HTML表?
我的目标如下:Javascript 如何通过对象循环生成HTML表?,javascript,jquery,html,html-table,Javascript,Jquery,Html,Html Table,我的目标如下: var obj={ 键1:‘值1’, 键2:‘值2’, 键3:“值3” } var obj={ 键1:‘值1’, 键2:‘值2’, 键3:“值3” } $('#myTable thead tr').append('Key Column'); $('#myTable thead tr').append('Value Column'); var标记=“”; 用于(obj中的var i){ 标记=“i+”+obj[i]+”; $(“#我的表格正文#第一列”).append(标记);
var obj={
键1:‘值1’,
键2:‘值2’,
键3:“值3”
}
var obj={
键1:‘值1’,
键2:‘值2’,
键3:“值3”
}
$('#myTable thead tr').append('Key Column');
$('#myTable thead tr').append('Value Column');
var标记=“”;
用于(obj中的var i){
标记=“i+”+obj[i]+”;
$(“#我的表格正文#第一列”).append(标记);
}
更改此行:
$("#myTable tbody #first-col").append(markup);
为此:
$("#myTable tbody").append(markup);
像这样:
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3'
}
$(function() {
$('#myTable thead tr').append('<th>Key Column</th>');
$('#myTable thead tr').append('<th>Value Column</th>');
var markup = '';
for (var i in obj) {
markup = "<tr><td>" + i + "</td><td>" + obj[i] + "</td></tr>";
$("#myTable tbody").append(markup);
}
});
var obj={
键1:‘值1’,
键2:‘值2’,
键3:“值3”
}
$(函数(){
$('#myTable thead tr').append('Key Column');
$('#myTable thead tr').append('Value Column');
var标记=“”;
用于(obj中的var i){
标记=“i+”+obj[i]+”;
$(“#myTable tbody”)。追加(标记);
}
});
我还删除了评论中提到的一个额外的
然后它就起作用了。Codepen:您正在生成行/
s,但是没有将它们附加到tbody
,而是将它们附加到第一行……为了添加到Chris的注释,在键列之后还有一个额外的
。“但我得到的是这样的结果”-您看到的输出是错误的。不要只检查最终渲染结果。您的代码正在构建HTML。查看它构建的结果HTML。你觉得对吗?为什么不呢?怎么了?如果生成的HTML字符串在您看来是正确的,那么您需要一些关于如何在HTML中创建表的教程/指导。如果您觉得它不正确,那么它将为您提供调试代码所需的所有信息您的选择器不正确,如@ChrisG所说,请使用此$(“#myTable tbody”).append(markup)正如@dotoconnor所说,markup=“+i+”+obj[i]+”代码>有一个额外的结束标记
,你可以使用这个“+i+”+obj[i]+”
谢谢你。它确实解决了这个问题。