【发布时间】:2017-04-27 22:13:47
【问题描述】:
我只是想得到这样的 JSON 输出
{
"SW Reqs or Problem Analysis & Estimate": {
"Estimate_Days": "I",
"Performers": "am",
"Percent_Done": "so",
"Work_Done": "frustrated",
"Remaining_Work": "this",
"Comments": "won't"
},
"SW Requirements Doc ( in DOORS)": {
"Estimate_Days": "WORK",
"Performers": "PLEASE",
"Percent_Done": "HELP",
"Work_Done": "AAHHHHH",
"Remaining_Work": "HHHHHH",
"Comments": "HHHHHH!!!!"
}, ...etc
但我的 json 看起来像这样
{
"SW Reqs or Problem Analysis & Estimate": {
"Estimate_Days": "",
"Performers": "",
"Percent_Done": "",
"Work_Done": "",
"Remaining_Work": "",
"Comments": ""
},
"SW Requirements Doc ( in DOORS)": {
"Estimate_Days": "",
"Performers": "",
"Percent_Done": "",
"Work_Done": "",
"Remaining_Work": "",
"Comments": ""
},...etc
这是我的脚本,
$('#test').click(function(){
var content = {};
var inner = {};
$('.Data').each(function() {
var row = $(this).siblings(":first").text();
var id = $(this).attr('id').split('~');
var blah = id[0];
var html = $(this).html();
content[row] = inner;
inner[blah] = html;
});
var hey = JSON.stringify(content);
console.log(hey);
});
它遍历表中的<td>s。如果我只测试
console.log(html) 或 console.log(inner[blah]) 它从 <td>s 输出我需要的数据,但由于某种原因,当我尝试输出 content 时它显示为空白。
这条线有问题吗?
content[row] = inner;
inner[blah] = html;
这是创建一个对象content 的正确方法吗?键为row,其值为另一个名为inner 的对象,其键为blah,值为html?这不应该这么难。我必须错过一些东西。我读到,当您拥有多维对象时,您不妨使用 JSON,但我无法弄清楚为什么“Estimate_Days”等之后的字符串是空白的。请帮忙。
编辑:这是生成 html 的几行 php 循环:
foreach($group_results as $group){
echo '<tr><td class="Row_Title'.$group['Group_ID'].'">'.$group['Group_Name'].'</td>';
echo '<td class="Data" contenteditable="true" name="Estimate_Days~'.$group['Group_ID'].'" id="Estimate_Days~'.$group['Group_ID'].'"></td>';
echo '<td class="Data" contenteditable="true" name="Performers~'.$group['Group_ID'].'" id="Performers~'.$group['Group_ID'].'"></td>'; ...etc
【问题讨论】:
-
把你所有的html js代码放在jsfiddle.net中(和菜单>保存并给我们链接)
-
我将更新我的问题并将所有内容发布在那里,那里有一些我无法在小提琴中真正重现的 php
-
如果只是一个有几行的静态示例,看看 HTML 会很好。
-
可能的问题:
content的所有值都指向同一个单数inner对象。 -
@stephen.vakil 嗯,我应该在其他地方实例化内部对象吗?就像也许做第二个循环?比如实例化
content,通过每个<tr>开始一个循环,在那里实例化inner,然后通过<td>s用循环中的值填充它,然后将它添加到content对象中并重复?
标签: javascript jquery html javascript-objects