用jquery理解javascript闭包

时间:2011-11-28 22:50:40

标签: javascript jquery closures

我开始学习javascript闭包,在尝试时,我意识到以下代码无法按预期工作:

(function($){
    var p='<p style="color:red">12345</p>';
    $p=$(p);
    $("body").append($p);
    $p.appendTo($("body"));
    console.log($p);
})(jQuery)

在控制台中,我可以看到返回的jquery对象,但它没有被附加到正文(我已经尝试了append和appendto方法)。

有人可以向我解释为什么这段代码没有按预期工作?

我有一个想法:这可能是因为在调用此函数时没有加载jquery,但是,jquery对象被输出到控制台,所以这必须意味着在此函数时加载了jquery IS被称为。

任何知识渊博的人都能发光吗?

1 个答案:

答案 0 :(得分:3)

确保执行脚本时body可用,您可以使用简写domready回调来执行此操作:

jQuery(function($){
    var p = '<p style="color:red">12345</p>';
    $p = $(p).appendTo(document.body);
    console.log($p);
});