Javascript OOP,不会给我错误,但代码不起作用

标签 javascript oop

+ function Engine() {

    var createObject = function(elemClass, height, width){

        this.element = document.createElement('div');

        $(this.element).addClass(elemClass)
        $(this.element).css('height', height);
        $(this.element).css('width', width);

    };

    var box1 = new createObject('box', 200, 400);

    $('body').append(box1.element);

}();

为什么下面的代码没有报错?但它也不会在 body 标签内创建 div。假设 body 是空的。任何帮助将不胜感激。

谢谢

最佳答案

这取决于您在页面中放置脚本代码的位置。

如果它位于 body 元素内,则文档已包含 一个 body 元素,$('body') 返回它并且一切正常。

如果它位于 head 元素中,则在脚本运行时主体尚不存在, $('body') 返回一个空集合,并且将 div 附加到任何内容中。

你不会得到任何错误,因为在这种情况下 jquery 不会抛出错误。

如果您想在 head 元素中编写脚本,请将其包装在 document.ready 调用中:

<script>
+ function Engine() {
      $(document).ready(function(){
        var createObject = function(elemClass, height, width){

            this.element = document.createElement('div');

            $(this.element).addClass(elemClass)
            $(this.element).css('height', height);
            $(this.element).css('width', width);

        };

        var box1 = new createObject('box', 200, 400);

        $('body').append(box1.element);

     });

}();
</script>

它会起作用。

关于Javascript OOP,不会给我错误,但代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21319335/

相关文章:

java类/接口(interface)适配器问题

c++ - 如何继承方法 operator=、clone 和 dispose

javascript - 我如何找到哪个 JavaScript 正在改变元素的样式?

javascript - 让悬停功能出现在所有 100 个 div 中

Javascript 匹配以从 URL 中删除部分文件名 - 替换最后一次出现

java - 在MySQL中对表列进行计算

c++ - 在回调函数中删除对象

JavaScript 不适用于隐藏和显示文本框

javascript - 向 Axios 发送 "raw"payload

c# - 虚拟类中的抽象方法