我开始阅读有关JavaScript和DOM的内容,我在这样的结构中找到了as on this site:
<html>
<head>
<title>The title</title>
</head>
<body>
The body
</body>
</html>
文本标题和正文也被视为节点,如下图所示(来自同一网站):
请注意标题和正文表示为实际标题各个正文节点的子节点。令我困惑的是:不是标题和正文文本只是节点<title>
和<body>
的值?
我在http://www.w3schools.com/js/js_htmldom_navigation.asp遇到的一个类似的例子,在这样的结构中:
<html>
<head>
<title>DOM Tutorial</title>
</head>
<body>
<h1>DOM Lesson one</h1>
<p>Hello world!</p>
</body>
</html>
<h1>
和<p>
元素的值也像节点一样被描述:
<h1>
有一个孩子:&#34; DOM第一课&#34;
<p>
有一个孩子:&#34; Hello world!&#34;
为什么节点内的文本值被视为不同的节点,而不仅仅是包含它们的节点的文本值?
谢谢!
答案 0 :(得分:4)
令我困惑的是:不是标题和正文文本只是值 节点和?
不,他们实际上是那些节点的孩子。您可以通过输出children
标记的title
属性来查看它:
document.querySelector('title').children
文本节点表示为Node.TEXT_NODE=3
,如上所述here。只有表单DOM元素(如输入)具有value
属性,并且在这些输入中输入的文本包含在那里。
除了文本节点,还有注释节点,如下所示:
<title><!-- DOM Tutorial --></title>
为什么节点内的文本值被视为不同的节点而不是 只是包含它们的节点的文本值?
可能是因为它们需要在内存中表示不同的结构,以便可以对其进行操作,例如,更改文本的颜色。
答案 1 :(得分:2)
不是
accessoires2
和The title
文本只是节点The body
和<title>
的值?
不完全是。它们是文本节点的值,分别是<body>
和<title>
的子项。
值本身不是节点,但文本节点确实是节点。
请注意,并非所有节点类型都可以包含值,例如,元素不能。文本不能直接是元素的值。这是因为元素可以包含text和element子元素,例如
<body>
很明显,<div>Hello<span> - </span>World</div>
元素没有明显的价值。相反,你需要一棵树
div
div
Hello
span
-