节点/元素/对象之间有什么区别?

时间:2015-07-17 01:18:41

标签: javascript

据说,在很多地方,他们都是一回事。但是,当他们开始解释时,他们会以不同的方式提及他们中的每一个,而没有明确解释有什么区别?

请尝试尽可能具体,因为我还在学习JS还不是很好。 :)

2 个答案:

答案 0 :(得分:2)

Node 是一个接口,许多DOM类型都是从该接口继承的,并允许类似地处理(或测试)这些不同类型。参考:https://developer.mozilla.org/en-US/docs/Web/API/Node

元素接口表示Document的对象。此接口描述了各种元素共有的方法和属性。在继承自Element但添加其他功能的接口中描述了特定行为。例如,HTMLElement接口是HTML元素的基本接口,而SVGElement接口是所有SVG元素的基础。参考:https://developer.mozilla.org/en-US/docs/Web/API/Element

对象可能代表任何内容。对象具有描述它们的属性,以及可以对它们执行的操作的方法。

把它放在一起:

您可以在网页中创建DOM节点,如下所示:

var node=document.createTextNode('A Node');

然后你可以创建一个段落元素:

var p=document.createElement('p');

将节点附加到段落:

p.appendChild(node);

您也可以将节点和元素引用为对象:

p.className='description';  // set the class property of the paragraph to 'description';

p.setAttribute('data-item', '8');  // add an attribute named data-item with a value of 8

答案 1 :(得分:0)

所有元素都是节点,但节点不是所有元素,元素和节点都是对象类型。