是否可以在选项元素中嵌套任何DOM元素?

时间:2012-05-04 19:14:49

标签: html

我意识到嵌套在一个选项元素中(除optgroup之外)违反了w3c标准。但是,是否任何元素都不违反此标准?

2 个答案:

答案 0 :(得分:6)

答案 1 :(得分:1)

通过HTML语法规则,您无法在option内嵌套任何元素。 (您可以在option内嵌套optgroup,但这是一个不同的问题。)

浏览器强制执行此操作:它们会丢弃option中的所有标记。您可以通过<option>foo <em>bar</em></option>测试并查看文档来查看此内容,例如与Firebug。

但是,可能使用脚本在option元素中插入DOM元素,例如

<option id=foo>
...
<script>
  document.getElementById('foo').innerHTML = 'Hello <em>world</em>';
</script>

这不是特别有用,因为浏览器对option元素的内容样式设置了严格的限制。在我测试的浏览器中,只有Firefox以em(斜体)的常规方式在此上下文中呈现em元素,并允许我设置例如它在CSS中的颜色和背景。

当然,以违反HTML规则的方式使用DOM有点冒险。