2

我有以下一段Javascript:

//Clear out container
var container = document.getElementById("buy");
while (container.lastChild)
{
    container.removeChild(container.lastChild);
}

再往下,它运行的 HTML 片段:

<div id="buy" class="itemGroup" />

<canvas id="drawArea" width="200" height="200">
    Your browser does not support HTML5 Canvas.
</canvas>   

但是,Javascript 代码会删除画布,除非购买 div 使用开始和结束标记,即

<div id="buy" class="itemGroup">
</div>

为什么是这样?我认为从 XML 的角度来看,这两者是等价的吗?在 Windows 7 上使用 Chrome 29.0.1547.76 m。

提前致谢!

4

1 回答 1

0

这不是一个比已经给出的评论本身更完整的答案,但我无法在您的帖子中添加评论。无论如何,有些标签不是自动关闭的,“div”就是其中之一——如果你仔细想想,这实际上是有道理的。从语义上讲,如果其中没有任何内容,您为什么要进行“划分”?

另一个棘手的问题是“脚本”。即使您链接到页面中的外部脚本文件,也不能使用

<script type="text/javascript" src="example.js" />

这只是行不通。另一个是'textarea'。这会使任何 html 在无用之后呈现出来!

<textarea cols="5" rows="5" />

看看其他一些:http: //xahlee.info/js/html5_non-closing_tag.html

于 2013-11-02T05:39:36.027 回答