根据ajax json响应更新html表
Update html table according to ajax json response
我有一个JSON响应,如下
{
"Parent": "skystar",
"Children": [
{"Name":"MW"},
{"Name":"PR"},
{"Name":"PV"},
{"Name":"ST"}
]
},
{
"Parent": "RR",
"Children": [
{"Name":"RC"},
{"Name":"RP"}
]
}
现在我需要把这个绑定到表上。
我试着像下面那样调用AJAX
$.ajax({
url: 'echo/sample.json/',
success: function (response) {
var trHTML = '';
$.each(response, function (i, item) {
trHTML += '<tr><td>' + item.Children + '</td>';
});
$('#records_table').append(trHTML);
}
});
但我无法绑定表
我做错了什么??
JSFIDDLE
每个孩子都有一件事,那就是如何添加链接
如何在Jquery或javascript中做到这一点??
有什么帮助吗??
演示:http://jsfiddle.net/tqyn3/336/
var jsonData = '[{"Parent":"skystar","Children":[{"Name":"MW"},{"Name":"PR"},{"Name":"PV"},{"Name":"ST"}]},{"Parent":"RR","Children":[{"Name":"RV"},{"Name":"RP"}]}]';
$.ajax({
url: '/echo/json/',
type: 'POST',
data: {
json: jsonData
},
dataType:'json',
success: function (response) {
var trHTML = '';
$.each(response, function (i, item) {
//alert(item.children);
$.each(item.Children, function(j, child) {
trHTML += '<tr><td>' + child.Name + '</td>';
});
});
$('#records_table').append(trHTML);
}
});
请参阅以下JSFiddlehttp://jsfiddle.net/s701aduz/
var jsonData = '[{"Parent":"skystar","Children":[{"Name":"MW"},{"Name":"PR"},{"Name":"PV"},{"Name":"ST"}]},{"Parent":"RR","Children":[{"Name":"RV"},{"Name":"RP"}]}]';
$.ajax({
url: '/echo/json/',
type: 'POST',
data: {
json: jsonData
},
dataType:'json',
success: function (response) {
var trHTML = '';
$.each(response, function (i, item) {
trHTML += '<tr>';
$.each(item.Children, function(j, child) {
trHTML += '<tr><td>' + child.Name + '</td>';
});
trHTML += '</tr>';
});
$('#records_table').append(trHTML);
}
});
您遇到的问题是item.Children
本身就是一个数组,所以当您将其包含在字符串中时,它只会输出[object Object]
,您还必须迭代子级。还要为响应中的每个元素造一行,为每个子元素造一个td,或者至少我猜这就是你想要的。
var json_data = $.parseJSON(response);
var table = $('<table>');
$.each(json_data,function(index,obj){
var tr = $('<tr>');
$.each(obj.Children,function(_index,_children){
var td = $('<td>');
$(td).text(_children.Name);
$(tr).append(td);
})
$('#records_table').append(tr);
});
var jsonData = [{"Parent":"skystar","Children":[{"Name":"MW"},{"Name":"PR"},{"Name":"PV"},{"Name":"ST"}]},
{"Parent":"RR","Children":[{"Name":"RV"},{"Name":"RP"}]}
];
$.each(jsonData, function (i, item) {
if(i == 0) {
$('#records_table').find('th:first').html(item.Parent);
} else {
$('#records_table').find('th:last').after('<th>'+ item.Parent +'</th>');
}
$.each(item.Children, function(j, child){
if(i==0) {
var tr = $('<tr />');
var td = $('<td />');
$(td).text(child.Name);
$(tr).append(td);
$('#records_table').append( tr );
} else {
var td = $('<td />');
$(td).text(child.Name);
$('#records_table').find('tr:eq('+(j+1)+')').append( td );
}
})
});
检查一下会对你有所帮助http://jsfiddle.net/tqyn3/338/
相关文章:
- $Scope变量在HTML中不更新,尽管在控制器中不断更新
- HTML动态更新滑块输入
- AngularJS$apply有时不会;当在highchart中使用click事件时,t触发更新{{}}中html标记中
- 用jQuery.html更新span内部html在IE中不起作用
- jquery html更新可以在电脑上使用,但不能在智能手机上使用
- 使用HTML更新JavaScript对象
- Angular.js:如何将数据从一个HTML更新到使用相同控制器的另一个HTML
- 简单的内部HTML更新不起作用
- 如何根据用户输入 HTML 更新多个 SPAN 元素
- 如何在现有JQuery数据表上使用HTML更新现有行
- 点击使用jQuery用HTML更新DIV
- 滚动条在使用$selector.html()更新内容后重置
- 从jquery ajax调用html更新多个元素
- HTML更新没有反映在AngularJS中
- 如何从HTML更新MySQL数据库
- 我正在尝试使用按钮创建一个动态HTML更新
- 不使用HTML 5更新查询字符串(没有重定向)
- 点击Sencha touch中html更新后新元素上的事件
- 使用Javascript/HTML更新两组值的按钮
- 使用Javascript从HTML更新MySQL数据