2013-02-12 102 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()中的标记是否正确。

相关问题