1

私はこのコードを持っています:

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を介して行われます

4

2 に答える 2

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
于 2012-10-26T06:53:29.490 に答える
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
于 2012-10-26T06:59:25.277 に答える