JQUERY将一组元素加载到DIV中

时间:2011-08-18 05:01:51

标签: jquery

我在一个名为'noactiveMsg'的数组中有一个DIV元素数组。 我想将这些DIV元素加载到名为$('#chatCenterMembers')的DIV中。

我试过了:

noactiveMsg.appendTo($('#chatCenterMembers'));

但这不起作用。 有人可以建议将一组元素/对象加载到div中吗?

制作数组的代码:

var noactiveMsg=[];
 $('div.chatmember').each(function() {                        
 if($(this).children().children('div').hasClass('chatactivestatus_offline')) {
 alert('offline');
 noactiveMsg.push($(this));
 }              
 });

3 个答案:

答案 0 :(得分:1)

如果数组的每个元素都是jQuery对象,那么可以试试这个:


一些示例html:

<div>
    <p>Some stuff below!</p>
</div>

jQuery的东西:

$(function(){
    var foo = [];
    foo.push( $('<p>hello</p>') );
    foo.push( $('<p>world</p>') );
    foo.push( $('<p>Adam</p>') );

    // this will fail because each element is a 
    // separate jQuery object
    // $('div').append( foo );

    // instead try this
    $.each(foo, function(){
        $('div').append(this);
    })
});

see it work on jsFiddle

I also answered a similar question just recently

答案 1 :(得分:0)

我认为这是您需要的代码。 假设noactiveMsg是一个包含jQuery对象的数组。

cnt = noactiveMsg.length();

for(i=0; i<cnt; i++) {

$('#chatCenterMembers').append(noactiveMsg[i].html());

$('#chatCenterMembers').append(noactiveMsg[i].html());

答案 2 :(得分:0)

您需要将它们全部合并到一个jQuery对象中:

var noactiveMsg = [$('<a>1</a>'), $('<a>1</a>')],
    collection;

$.each(noactiveMsg, function(i, e) {
    collection ? collection = collection.add(e) : collection = e;
});

修改

其他人建议将数组中的每个元素分别添加到DOM中。我强烈建议你不要这样做。与DOM交互是一项昂贵的操作,应尽可能避免使用。