javascript - 用 jquery 理解 javascript 闭包

标签 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被称为。

任何有知识的人都可以阐明一些吗?

最佳答案

确保 body 在执行脚本时可用,您可以使用简写的 domready 回调来做到这一点:

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

关于javascript - 用 jquery 理解 javascript 闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303527/

相关文章:

javascript - tiniMCE 不在 jsPanel 中初始化

asp.net - 如何检查文件是否准备好?

javascript - 我需要 Javascript 闭包吗?

javascript - 两个版本的函数有什么区别

javascript - 设置alignTicksWithAxis 时防止流程图重复刻度

javascript - Keyup 事件处理程序显示性能低下

javascript - 从扩展程序确定 Internet Explorer 是否处于隐私浏览模式

javascript - 如何对 DOM 上由 setter 组成的函数进行单元测试?

Javascript innerhtml 在第二次函数调用未定义函数时不显示

language-agnostic - C# 委托(delegate)、动态代理、闭包和函数指针之间有什么区别?