2009-09-14 99 views
11

我正在使用jQuery將一些動態內容添加到網站。jQuery「對象不支持此屬性或方法」在Internet Explorer中

我試圖用下面的代碼來創建點播一個新的DOM元素:

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

這工作完全在Firefox和Safari瀏覽器,但Internet Explorer中生成錯誤。 IE錯誤是:Object doesn't support this property or method

我知道,jQuery加載正常,並嘗試了jQuery$語法。

有關可能會導致此問題的任何想法?

回答

10

如果你想添加一個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'); 
+1

不過不知道爲什麼原始方法不起作用(因爲jQuery文檔列出了它),但是你的方法是一個完美的選擇。謝謝。 – 2009-09-14 17:03:11

+0

是的,測試過並且適用於我。謝謝,謝謝! – 2010-10-05 12:43:27

21

我不知道,如果它可以幫助,但我固定我的問題。 基本上IE不想將jquery對象分配給一個未定義的變量。

所以我做的是聲明這是一個局部變量。

前:

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

後:

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

爲我工作。 你可能救了我很多挫折:)謝謝 – theosp 2010-07-25 15:41:16

+0

完美,也爲我工作。 – Roy 2010-07-26 10:32:55

+0

這是正確的答案。當我需要'var parent = $('#elem')'的時候,我沒有意識到我已經變得sl and而且有'parent = $('#elem')'。有一次我同意IE。如果我要給一個變量命名一個現有的全局變量的名字,那麼我最好先把它聲明爲一個新的變量! – Gavin 2013-09-12 16:38:39

2

我也有類似的問題。當您嘗試修改全局符號時,Internet Explorer會引發此錯誤。這不僅適用於保留字。我的例子是:

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

這解決了它:

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

這也:

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

(但首先是更好的風格反正)

相關問題