2013-02-14 55 views
1

我想知道如何添加一个新的tr和td,包裹从ajax调用接收到的数据?以下不起作用。tr和td围绕jQuery中的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); 

}); 

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

+0

什么是响应数据? – Jai 2013-02-14 11:20:33

回答

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> 
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)); 
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); 
}); 

这可以避免将html标签写入字符串并且必须记住关闭他们等等,让jQuery为你做几乎所有的事情。

这是an example on jsFiddle它显示它的工作。希望这有助于!