Jquery 来自AJAX脚本的JSON数据未出现在HTML表中
这是我的密码:Jquery 来自AJAX脚本的JSON数据未出现在HTML表中,jquery,ajax,json,asp.net-mvc-3,Jquery,Ajax,Json,Asp.net Mvc 3,这是我的密码: $(document).ready(function () { $.ajax({ url: '/blog/getposts', type: 'GET', dataType: 'json', success: function (result) { var insert = ''; $.each(result, function (index, item)
$(document).ready(function () {
$.ajax({
url: '/blog/getposts',
type: 'GET',
dataType: 'json',
success: function (result) {
var insert = '';
$.each(result, function (index, item) {
insert += '<tr><td>' + item.Name + '</td><td>' + item.Body + '</td><td>' + item.DateCreated + '</td></tr>';
});
$('#blogTable').append(insert);
}
});
});
编辑:FireBug的InnerHTML粘贴
<tbody><tr>
<th>Name</th>
<th>Body</th>
<th>Date</th>
</tr>
名称
身体
日期
编辑:这是我的html:
<table id="blogTable">
<tr>
<th>Name</th>
<th>Body</th>
<th>Date</th>
</tr>
名称
身体
日期
如果我将插入内容更改为:
$('#blogTable tr:last').after(insert);
插入+='
''项目.名称+'
+项目.正文+'
+项目.日期创建+'
'
运行站点时,innerhtml输出为:
<tbody><tr>
<th>Name</th>
<th>Body</th>
<th>Date</th>
</tr>
</tbody>
<td>derper</td><td>testtat</td><td>/Date(1301692095627)/</td>
<td>derper</td><td>tesateat</td><td>/Date(1301692093497)/</td>
<td>derper</td><td>testest</td><td>/Date(1301692091527)/</td>
<td>derper</td><td>derprperp</td><td>/Date(1301692082100)/</td>
名称
身体
日期
derpertesttat/日期(1301692095627)/
Derpertestate/日期(1301692093497)/
derpertestest/日期(1301692091527)/
DERPRP/日期(1301692082100)/
所以我的问题是,当我尝试添加新行时,它们不会显示,但当我只使用单元格(
)时,它们会显示。如何将新的
添加到
中?到目前为止,您发布的代码仍然有效。请参阅:
使用Firebug检查表:blogTable
。(右键单击表格通常会在上下文菜单中显示Firebug的“检查”工具。)
~~~~~~~表格结构看起来正确吗?
右键单击inspector中的
,然后单击复制innerHTML
将结果粘贴到上面的问题中。到目前为止,您发布的代码是有效的。请参阅: 使用Firebug检查表:
blogTable
。(右键单击表格通常会在上下文菜单中显示Firebug的“检查”工具。)
~~~~~~~表格结构看起来正确吗?
右键单击inspector中的
,然后单击复制innerHTML
将结果粘贴到上面的问题中。尝试将
.append()
更改为.appendTo()
?尝试将.append()
更改为。appendTo()
?尝试找出解决方案很多小时后,我将insert语句更改为:
$('#blogTable tr:last').after(insert);
现在它可以工作了。innerHTML输出结果如下:
<tbody>
<tr>
<th>Name</th>
<th>Body</th>
<th>Date</th>
</tr>
<tr>
<td>derper</td>
<td>testtat</td>
<td>/Date(1301692095627)/</td>
</tr>
<tr>
<td>derper</td>
<td>tesateat</td>
<td>/Date(1301692093497)/</td>
</tr>
<tr>
<td>derper</td>
<td>testest</td>
<td>/Date(1301692091527)/</td>
</tr>
<tr>
<td>derper</td>
<td>derprperp</td>
<td>/Date(1301692082100)/</td>
</tr>
</tbody>
名称
身体
日期
德珀
试验台
/日期(1301692095627)/
德珀
特萨塔特
/日期(1301692093497)/
德珀
测试员
/日期(1301692091527)/
德珀
德普佩普
/日期(1301692082100)/
经过几个小时的尝试,我找到了一个解决方案,我将insert语句改为:
$('#blogTable tr:last').after(insert);
现在它可以工作了。innerHTML输出结果如下:
<tbody>
<tr>
<th>Name</th>
<th>Body</th>
<th>Date</th>
</tr>
<tr>
<td>derper</td>
<td>testtat</td>
<td>/Date(1301692095627)/</td>
</tr>
<tr>
<td>derper</td>
<td>tesateat</td>
<td>/Date(1301692093497)/</td>
</tr>
<tr>
<td>derper</td>
<td>testest</td>
<td>/Date(1301692091527)/</td>
</tr>
<tr>
<td>derper</td>
<td>derprperp</td>
<td>/Date(1301692082100)/</td>
</tr>
</tbody>
名称
身体
日期
德珀
试验台
/日期(1301692095627)/
德珀
特萨塔特
/日期(1301692093497)/
德珀
测试员
/日期(1301692091527)/
德珀
德普佩普
/日期(1301692082100)/
请发布您正在获取的JSON。顺便说一句,您实际上不需要在这里使用$.ajax()
;足够了。。。另外,这听起来像是一个完美的用例。您能为$.getJSON()或$.tmpl()提供一个示例吗?或者两者都有?我尝试使用$.tmpl()方法,但也没有出现。我只想在表中显示名称、正文和创建日期。到底出了什么问题?我刚刚测试了你的代码,它是按编写的方式工作的。我不确定是否准确…当我插入数据时,如+item.Name等,它工作并显示出来。但是当我尝试插入带有
标记的数据时,它不起作用。可能是因为JSON请求发送了额外的字段?(postid和userid)。那么如果您console.log(item.Name)
它会给出正确的信息吗?当您使用Firebug检查DOM时,它是显示HTML表还是表为空?请发布您正在获取的JSON。顺便说一句,您实际上不需要在这里使用$.ajax()
;足够了。。。另外,这听起来像是一个完美的用例。您能为$.getJSON()或$.tmpl()提供一个示例吗?或者两者都有?我尝试使用$.tmpl()方法,但也没有出现。我只想在表中显示名称、正文和创建日期。到底出了什么问题?我刚刚测试了你的代码,它是按编写的方式工作的。我不确定是否准确…当我插入数据时,如+item.Name等,它工作并显示出来。但是当我尝试插入带有
标记的数据时,它不起作用。可能是因为JSON请求发送了额外的字段?(postid和userid)。那么如果您console.log(item.Name)
它会给出正确的信息吗?当您使用Firebug检查DOM时,它是显示HTML表还是表为空?好吧,让它工作很好,但仍然没有意义。这两个insert语句都能工作,不管显式
元素的存在——至少在(Chrome、FF和IE8)上是这样。这里少了一些东西。好吧,你让它工作很好,但它仍然没有意义。这两个insert语句都能工作,不管显式
元素的存在——至少在(Chrome、FF和IE8)上是这样。这里少了一些东西。