style.behavior为null或undefined

时间:2012-11-20 06:29:35

标签: javascript jquery css

<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中的

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

2 个答案:

答案 0 :(得分: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中使用。

答案 1 :(得分:1)

getElementsByTagName不会返回单个元素,而是返回元素列表 - 但只有在找到某些内容时才会返回。因此,您需要添加[0] ,确保您实际上找到至少一个元素。由于您希望<ol>标记将字符串'ol'传递给该函数(您忘记了引号)。

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