var pagepath = window.location.pathname;
$.ajax({
type: 'post',
url: '{{ url_for("getposts") }}',
data: {'category':pagepath},
success: function (msg) {
$.each(msg, function (i, n) {
var row = $('#post-clone').clone();
var postid = n.id;
console.log(postid);
row.find('#post-name').text(n.name);
row.find('#post-author').text(n.author);
row.find('#post-ctime').text(n.ctime);
row.find('#post-mtime').text(n.mtime);
row.find('#post-small').text(n.small);
row.find('#postcontainer_p').text(n.container);
if ( n.author == '{{ g.user.username }}') {
$('a#post-getpost').attr('onclick', 'getpost(n.id)');
}
row.appendTo('#post-content').css('display', 'block')
})
}
});
javascript if判断执行体中无法使用变量
问题在于getpost(n.id),会报错.提示n未定义.
数据使用json传递到jquery.
作用域的问题。
这段代码结果应该是在dom中
在这里函数名getpost、参数n都是全局的。
而在
回调中n的作用域限制在回调函数里,并且此时全局没有n这个变量
所以n是undefined
可以改成