看了这个课程老会把一些概念搞混

来源:8-9 解决getElementsByClassName()兼容性

陈立天

2020-01-30 21:30:48

麻烦老师在帮我理清一下这几个概念的意思和区别:

节点、元素、标签、元素节点、元素标签

写回答

3回答

好帮手慕夭夭

2020-02-01

同学你好,问题解答如下:

1. 理解的有一点问题,区别如下

(1)HTML 元素指的是从开始标签到结束标签的所有代码 ,例如<p>hello</p> 这就是一个p元素。<p>是开始标签,hello是元素内容,</p>是结束标签。

(2)我们做网页的时候,写的html标签,例如<div>, <body>,<html> ,<p> .....这些就叫做标签。例如<div>标签和div标签是一个意思。

(3)节点是DOM中的概念,它是一个很抽象的概念,打一个比喻:

每一个HTML文档就是一个树结构,文档中的所有内容都是节点。就相当于树叶树枝,组成了树结构。整个文档是一个文档节点,每个 HTML 元素是元素节点,HTML 元素内的文本是文本节点,每个 HTML 属性是属性节点,注释是注释节点。

例如<p>hello</p> 就是一个元素节点 ,而里面的hello是文本节点。

(4)元素标签这个不太清楚同学说的是什么 ? 没有这么一个概念 。

2. 关于变量命名,同学不用过于去纠结,因为变量名本身就是我们任意起的。另外注意一下,getElementsByTagName是通过指定的标签名称获取元素 ,返回的是一个对象的集合,也就是我们说的DOM对象。当然了,我们也可以把它叫做元素的集合。

elements翻译成中文就叫做元素,所以变量命名语义化叫做elements 或者els没有问题。

如果我的回答帮助了你,望采纳,祝学习愉快!

0

陈立天

提问者

2020-01-30

我刚刚仔细看了一下老师的代码的命名是不是有点问题?在这个当中:

var els = node.getElementsByTagName(tag)

老师的新建变量名称为els 是elements的简写,在w3c当中对于element的解释是:Element 对象表示 HTML 元素,Element 对象可以拥有类型为元素节点、文本节点、注释节点。 而这里 node.getElementsByTagName(tag)是获取节点的标签 ,这里获取的是一个标签集合。 而老师的命名els意为是元素的集合。而node.getElementsByTagName(tag)是获取的是标签的集合。 标签是div而元素是<div> 这两个含义是不一样的把? 我知道命名命名啥都可以,我想表达的是 这个 node.getElementsByTagName(tag) 获取的是标签集合,而不是元素集合把? 因为元素或元素集合构成的要素是要有外面这“<> ”括号括起来把,所以更谈不上能拥有什么元素节点了啊?这是两个概念把?

0

陈立天

提问者

2020-01-30

问下我的理解对吗:

<div>是元素 ,<div>..</div>是元素节点,<div>123</div>是文本节点,<div class=go> 是属性节点,div 是标签。 另外节点的意思就是包含:元素节点、文本节点、属性节点的称为节点?


0

0 学习 · 40143 问题

查看课程