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 - 如何在页面加载时在 ng-grid 的第一列上启用点击事件

rust - 闭包何时实现Fn,FnMut和FnOnce?

javascript - 如何使用 datetimepicker 插件格式化日期时间?

javascript闭包局部变量超出范围?

javascript - Javascript 闭包的实际用法/示例

javascript - 检查用户是否接受了 JavaScript 中的文件下载

javascript - 单击时按钮被禁用,然后单击按钮不会触发

javascript - 设置类别名称后,Highchart 会勾选起点变化

javascript - 两个空格之间的差异

javascript - 从 iframe 调用 jquery 插件中的函数