【问题标题】:jQuery "Object doesn't support this property or method" in Internet ExplorerInternet Explorer 中的 jQuery“对象不支持此属性或方法”
【发布时间】:2009-09-14 16:33:19
【问题描述】:

我正在使用 jQuery 向网站添加一些动态内容。

我正在尝试使用以下代码按需创建一个新的 DOM 元素:

container = $('<div id="myContainer"></div>');

这在 Firefox 和 Safari 中完美运行,但 Internet Explorer 正在生成错误。 IE错误为:Object doesn't support this property or method

我知道 jQuery 加载正常,并且尝试了 jQuery$ 语法。

关于可能导致此问题的任何想法?

【问题讨论】:

    标签: jquery internet-explorer dom


    【解决方案1】:

    我不知道它是否有帮助,但我解决了我的问题。 基本上 IE 不想将 jquery 对象分配给未定义的变量。

    所以我所做的就是将其声明为局部变量。

    之前:

    function foo() {
      bar = $('#bar');
    }
    

    之后:

    function foo() {
      var bar = $('#bar');
    }
    

    【讨论】:

    • 为我工作。你可能会为我省去很多挫败感:) 谢谢
    • 这是正确答案。当我需要var parent = $('#elem') 时,我没有意识到我变得草率并且拥有parent = $('#elem')。这一次我同意 IE。如果我要将变量命名为现有全局变量的名称,我最好先将其声明为新变量!
    【解决方案2】:

    如果要添加DOM元素,代码需要稍微修改一下:

    $('body').append('<div id="myContainer"></div>');
    // body can be whatever containing element you want to hold myContainer
    $('#myContainer').html('whatever you want inside of myContainer');
    

    【讨论】:

    • 仍然不确定为什么原始方法不起作用(因为 jQuery 文档列出了它),但您的方法是一个完美的选择。谢谢。
    【解决方案3】:

    我遇到了类似的问题。当您尝试修改全局符号时,Internet Explorer 会引发此错误。这不仅适用于保留字。我的例子是:

    function foo() {
        iframe = $("myDiv").append("<iframe></iframe>");
    }
    

    这样就解决了:

    function foo() {
        var iframe = $("myDiv").append("<iframe></iframe>");
    }
    

    这也是:

    function foo() {
        myIframe = $("myDiv").append("<iframe></iframe>");
    }
    

    (但无论如何,第一个风格更好)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 2013-03-23
      • 2018-02-10
      相关资源
      最近更新 更多