2013-02-12 68 views
2

我試圖從元素中替換所有出現的特定字符(引號)。我的代碼工作正常,在Chrome和FF,但在IE與調試器說失敗 - 'target.html()' is null or not an object'target.html()'爲空或不是對象

這裏是我的代碼看起來像 -

text = "some random text"; 
target = $('#target'); 
target.append(text); 
target.html(target.html().replace(/"/g, " ")); 

是什麼導致在IE的錯誤,以及如何解決呢?

+3

IE可能不喜歡'target',它可能是'window.target'的一部分。相反,使用'var $ target = $(「#target」)'並使用'$ target'。「只是猜測,但。 – 2013-02-12 03:16:17

+0

@ExplosionPills實際的var名稱不是目標,我只是用它作爲例子。這避開了var name造成問題的可能性 – rzr 2013-02-12 03:19:28

+0

在JSFiddle上對問題進行演示 – epascarello 2013-02-12 03:23:22

回答

2

'target'被用於一個屬性,IE不喜歡它,如果你使用它作爲變量名。事實上,它甚至拒絕承認event.target並堅持event.srcElement(告訴我關於它..)。

無論如何,它應該工作,如果您將對象重命名爲$target

+0

此外,您還可以爲那些挑剔的瀏覽器設置attr('disabled','disabled'),這些瀏覽器不會隱藏在選項標籤上。 – jagzviruz 2013-02-12 03:53:47

+0

不適用於不同的變量名稱。 – rzr 2013-02-12 04:17:05

0

我得到這樣的錯誤的主要原因之一是,因爲HTML格式不正確(在我發現之前它確實給了我地獄)。其他瀏覽器允許缺少'>'或其他語法錯誤,但IE非常嚴格。

所以只要仔細看看target.html()中的標記是否正確。