【问题标题】:jquery loop with html?带有html的jquery循环?
【发布时间】:2011-04-13 02:13:00
【问题描述】:

我正在尝试将 php 脚本的结果循环到我的 jquery 好友列表中。似乎无法让列表显示除未定义之外的任何内容,但如果我将其附加到正文中,它只会显示数组的最后一个。我的代码是...

$(function() {

    $('<div />').html('<div id="buddies" class="buddies" style="vertical-align:bottom"><div class="imheader">&nbsp;Online Favorites<span class="fr"><a href="#" id="exitlist">X</a></span></div><div class="imheader2"><div class="imheaderspan"><a href="#">Options</a></div></div><ul class="imwindow"><div id="myonlinefavs">' + FL() + '</div></ul></div><div id="chatbar" class="chatbar"><div id="ims"></div><div class="buddylist" id="buddylist"><center><a href="#" id="im-menu" class="im-menu">Favorites (<strong id="friendsonline">0</strong>)</a></center></div></div>').appendTo('body');

var imRoot = $("#im-menu");
var buddies = $("#buddies");
imRoot.click(function(){
    buddies.toggle();
    imRoot.blur();
    return( false );
});
$("#exitlist").click(function(){
    buddies.toggle();
    imRoot.blur();
    return( false );
});
$(document).click(function( event ){
    if (buddies.is( ":visible" ) && !$( event.target ).closest( "#buddies" ).size()){
        buddies.hide();
    }
});

    function FL(){
        $.ajax({
            type: 'POST',
            url: 'config/receive_buddylist.php',
            cache: 'false',
            dataType: 'json',
            success: function(data){
                data && $.each(data, function(i, e){
                    if (i == "buddylist") {
                        $.each(e, function (l, f) {
                            if(f.id != null){
                                $('<div />').html('<li>' + f.n + '</li>');
                            }
                        });
                    }
                });
            }
        });

    }
});

【问题讨论】:

    标签: jquery html arrays loops


    【解决方案1】:

    问题是你正在做$('body').html('&lt;li&gt;' + f.n + '&lt;/li&gt;');,它不断地覆盖数据。尝试使用append()

    $('body').append('<li>' + f.n + '</li>');
    

    我注意到您稍微更新了代码。这是一个改进:

    if(f.id != null){
        $('<div />').html('<li>' + f.n + '</li>').appendTo('body');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 2011-09-02
      • 2019-05-06
      • 1970-01-01
      • 2017-01-12
      • 2014-09-12
      相关资源
      最近更新 更多