-2
<ol class="myclass cls">
<li class="mylicls">
</li>
</ol>

在我的 CSS 中已经定义了 myclass、cls、mylicls

我想将上面的 div 输出到

<ol class="myclass cls" style="behavior:url(/path/something.htc)">
<li class="mylicls">
</li>
</ol>

这是我的 javascript

document.getElementsByTagName(ol).style.behavior="url(/path/something.htc)";

在 Firefox 中:
在 IE 中未定义 style.behavior:对象为空或未定义

4

2 回答 2

4

document.getElementsByTagName(ol)正在返回 null。

你可能的意思是document.getElementsByTagName("ol")

但即便如此,您也有一个节点列表,而不是单个节点,您必须将样式应用于每个节点。

var ols = document.getElementsByTagName("ol");
for (var i = 0; i < ols.length; i++) {
  var el = ols[i];
  el.style.behavior = "url(/path/something.htc)";
};

据我所知,即使是 behaviour在非标准的情况下,也只能在 IE 中使用。

于 2012-11-20T06:32:14.437 回答
1

getElementsByTagName不返回单个元素,而是返回一个元素列表——但前提是它找到了一些东西。因此,您需要添加[0] 确保您确实找到了至少一个元素。由于您希望<ol>标签将字符串传递'ol'给函数(您忘记了引号)。

除此之外,behavior只存在于IE中。因此,无论如何在任何其他浏览器中使用它都会失败。显然,这意味着您根本不应该使用它,除非您需要填充一些 IE 缺乏但其他浏览器已经具备的功能。

于 2012-11-20T06:31:19.573 回答