将tr和td封装在jQuery中ajax调用的数据中

Wrap tr and td around data from ajax call in jQuery

本文关键字:ajax 调用 数据 jQuery tr td 封装      更新时间:2023-09-26

我想知道如何添加一个新的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);
});

任何帮助都将不胜感激。感谢

您可以将其添加到表元素中。我认为在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>
如果没有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));

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

$.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的一个例子,它显示了它的工作原理。希望这能有所帮助!