附加DOM节点

时间:2011-05-10 14:30:20

标签: jquery

我在添加DOM节点时遇到问题..

这不起作用:

this.loader = $(document.body).append('<div class="loader" style="display:none">loader</div>');

$(this.loader).fadeIn(1000);

但这有效:

this.loader = DOM.div(document.body);
with(this.loader){
    className = 'loader';
    innerHTML = 'loader';
    style.display = 'none';
}

$(this.loader).fadeIn(1000);
谁能告诉我有什么问题?!

但如果我喜欢这样,则会添加div并显示其可见

this.loader = $(document.body).append('<div class="loader">loader</div>');

2 个答案:

答案 0 :(得分:1)

追加功能不会返回您认为我认为的值。你应该这样做:

 var myDiv = $('<div class="loader" style="display:none">loader</div>');
 $(document.body).append(myDiv);

 myDiv.fadeIn(1000);

答案 1 :(得分:1)

append返回传递给它的选择器/对象的jQuery对象,所以你的第一行是获取document.body周围的jQuery对象,而不是新div的jQuery包装器。您可能需要appendTo

this.loader = $('<div class="loader" style="display:none">loader</div>').appendTo(document.body);
this.loader.fadeIn(1000);

或更长(但可能更清晰):

this.loader = $('<div class="loader" style="display:none">loader</div>');
this.loader.appendTo(document.body);
this.loader.fadeIn(1000);

另请注意,您获得的内容已经是jQuery对象,因此您无需在其上使用$()