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)上是这样。这里少了一些东西。