我有这段代码:
var comment_count = instadata[0].data[i].comments.count
var comment_data = instadata[0].data[i].comments.data
var comments = [];
$.each(comment_data, function(i, user) {
comments.push('<li><img class="commentUserImg" src="' + user.from.profile_picture + '"><div class="commentUser">' + user.from.username + '</div><div class="commentText">' + user.text + '</div></li>');
});
显示评论。它是一个附加的,直接位于AJAX内的$ .each()下面
<ul class="messageComments">' + comments + '</ul>
显示时,每个LI元素之间都有逗号。
我怎样摆脱这个?除逗号外,一切正常。
由于
更新了代码。这也是通过AJAX
完成的答案 0 :(得分:1)
您可以使用胶带修复它:
<ul class="messageComments">' + comments.join('') + '</ul>
或者第一次做得对(好吧,只是我的方式):
var comment_count = instadata[0].data[i].comments.count
var comment_data = instadata[0].data[i].comments.data
var $comments = $('<ul />', {'class': 'messageComments'});
$.each(comment_data, function(i, user) {
var $li = $('<li />');
$('<img />', {
'class': 'commentUserImg',
'src': user.from.profile_picture
}).appendTo($li);
$('<div />', {
'class': 'commentUser',
'text': user.from.username
}).appendTo($li);
$('<div />', {
'class': 'commentText',
'text': user.text
}).appendTo($li);
$li.appendTo($comments);
});
$comments.appendTo('body'); // Tweak this selector
答案 1 :(得分:0)
您需要使用空字符串调用join,否则将默认使用','。如果你甚至没有调用join,你将自动使用toString(),结果将与join()相同;
<ul class="messageComments">' + comments.join('') + '</ul>
试验:
var a = [1,2,3,4];
console.log(a.toString()); //1,2,3,4
console.log("string: "+a); //string: 1,2,3,4
console.log(a.join()); //1,2,3,4
console.log(a.join('')); //1234