0

我有一些代码允许我将鼠标悬停在多个链接上,然后替换指定 DIV 中的内容。它适用于大多数浏览器,但 Firefox 会出现错误 - 可以通过删除页面的 doctype 代码来“修复”该错误,但显然这意味着代码存在大量问题并且不兼容。

这是Javascript:

var description = new Array();
description[0] = "Content one";
description[1] = "Content two";
description[2] = "Content three";

每个链接看起来像这样,带有不同的数字:

<a onMouseOver="FeatureSwap.innerHTML = description[1];">

这是 DIV,它的内容在悬停在其中一个链接上时发生了变化:

<div id="FeatureSwap">Default content here</div>

Firefox 抛出的错误是:

FeatureSwap is not defined
4

2 回答 2

1

innerHTML是 DOM 元素的属性,即文档对象模型。

因此,您需要首先获得对元素的访问权限。在您的情况下,该元素是具有 FeatureSwap 的 id 的 div。

在下面的代码中,我们首先使用大多数浏览器通用的方法通过其 ID 查找元素。然后我们设置它的innerHTML 属性。

尝试

<a onMouseOver="document.getElementById('FeatureSwap').innerHTML = description[1];">

仅供参考,通过删除 doctype 声明,您导致 Firefox 以“怪癖模式”而不是标准兼容模式显示您的页面。Firefox中 quirks 模式的显着特点之一是可以通过其 ID 访问元素,就好像它们是变量一样。有关详细信息,请参阅WHATWG 规范

于 2011-07-10T16:36:15.630 回答
0

尝试:

<a onMouseOver="document.getElementById('FeatureSwap').innerHTML = description[1];">
于 2011-07-10T16:36:45.913 回答