1

我想知道如何添加一个新的 tr 和 td 包裹从 ajax 调用接收到的数据?以下不起作用。

$.get('/edit/'+course_id, function(data){ 

    ///add class to current tr
    $('#course_'+course_id).addClass( "info" );

    $('<tr><td>'+data+'</td></tr>').insertAfter('#course_'+course_id);

});

任何帮助将非常感激。谢谢

4

3 回答 3

1

您可以将其添加到表格元素中。我认为在 IE 中,它需要附加 tbody。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<script src="jquery.js"></script>
<script>
$(document).ready(function () {
    var data='some HTML';
    $('<tr><td>'+data+'</td></tr>').insertAfter('#course');
});
</script>
</head>

<body>
<table>
<tbody>
<tr id="course"><td></td></tr>
</tbody>
</table>
</body>
</html>
于 2013-02-14T11:17:22.357 回答
0

最简洁的方法可能是...

$.get('/edit/' + course_id, function() {
    // do whatever else you need to do
    var formatted = $('<tr/>').append($('<td/>', { html: data }));
    formatted.insertAfter('#course_' + course_id);
});

通过让 jQuery 为您做几乎所有事情,这使您免于将 html 标记作为字符串编写并且必须记住关闭它们等的混乱。

这是jsFiddle 上的一个示例,它显示了它的工作原理。希望这有帮助!

于 2013-03-18T14:39:50.387 回答
0

(真的)没有 HTML 标记很难回答,但这可能是一个绑定问题:

也许你可以试试

var successCourse = function(courseId) {
    return function(data) {
        ///add class to current tr
        $('#course_' + courseId).addClass("info");
        $('<tr><td>' + data + '</td></tr>').insertAfter('#course_' + courseId);
    };
};

$.get('/edit/'+course_id).done(successCourse(course_id));
于 2013-02-14T11:32:41.853 回答