HTML DOM w3schools澄清

时间:2011-10-03 11:04:01

标签: html dom

阅读W3schools HTML DOM教程。有一段对我来说毫无意义。

对我来说没有意义的一点是:

  

DOM处理中的常见错误是期望元素节点包含文本。

     

但是,元素节点的文本存储在文本节点中。

     

在此示例中:<title>DOM Tutorial</title>,元素节点<title>包含一个值为“DOM Tutorial”的文本节点。

     

“DOM教程” <title>元素的值!

     

但是,在HTML DOM中,innerHTML属性可以访问文本节点的值。

好的,什么?这听起来与我的情况完全相反。 感谢

1 个答案:

答案 0 :(得分:2)

当标记文档转换为DOM时,最终会得到一个节点树。

有几种类型的节点,包括元素,文本和注释。

节点具有属性。例如HTMLInputNode将具有映射到其当前值的value属性。任何HTMLElementNode都将具有style属性,通过该属性可以访问通过style属性定义的CSS属性。同样,它也会有className属性,映射到class属性。

当你有<title>DOM Tutorial</title>时,你有一个包含TextNode的HTMLTitleNode。要获取文本DOM Tutorial,您应该访问TextNode,然后阅读其data属性。

myTitle.firstChild.data

然后W3Schools通过提及innerHTML来淹没水。

innerHTML是一个属性(虽然不是标准的DOM属性(我认为HTML 5正在定义它))HTMLElementNodes,它给你一个元素的HTML内容的序列化(但不是元素本身)。

由于title元素中只有一个TextNode,因此你最终会得到纯文本。