javascript节点类型详细介绍

快乐打工仔 分类:实例代码

在javascript中,节点分为不同的类型,下面就做一下介绍,需要的朋友可以做一下参考。

一.节点类型:

(1).Node:表示所有类型值的统一接口,低版本IE不支持;

(2).Document:表示文档类型;

(3).Element:表示元素节点类型;

(4).Text:表示文本节点类型;

(5).Comment:表示文档中的注释类型;

(6).CDATASection:表示CDATA区域类型;

(7).DocumentType:表示文档声明类型;

(8).DocumentFragment:表示文档片段类型;

(9).Attr:表示属性节点类型;

二.类型介绍:

(1).Node类型:

DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现;

这个Node接口在JavaScript中是作为Node类型实现的;

除低版本的IE之外,在其他所有浏览器中都可以访问到这个类型;

(2).Document类型:

Document类型表示文档,或文档的根节点,而这个节点是隐藏的,没有具体的元素标签;

document; // document;

document.nodeType;// 9;类型值;

document.childNodes[0]; // DocumentType;第一个子节点对象;

document.childNodes[1]; // HTMLHtmlElement;对象;

如果想直接得到<html>标签的元素节点对象HTMLHtmlElement,可以直接使用documentElement即可;

document.documentElement; // HTMLHtmlElement;

很多时候需要得到<body>标签,之前常用的是:document.getElementsByTagName('body')[0];

document.body; // HTMLBodyElement;

在<html>之前还有一个文档声明:<!DOCTYPE>会作为浏览器的第一个节点来处理;

document.doctype; // DocumentType;

在Document中有一些遗留的属性和对象集合,可以快速的帮助我们精确的处理任务;

属性:

document.title; // 获取和设置<title>标签的值;

document.URL; // 获取URL路径;

document.domain; // 获取域名;

当页面中包含来自其他子域的框架或内嵌框架时,能够设置document.domain就非常方便了;

由于跨域安全限制,来自不同子域的页面无法通过JavaScript通信;

而通过将每个页面的document.domain设置为相同的值,这些页面就可以相互访问对方的JavaScript对象了;

document.referrer;// 保存着链接到当前页面的那个页面的URL;

// 对象集合

document.anchors; // 获取文档中带name属性的<a>元素集合;

document.links; // 获取文档中带href属性的<a>元素集合;

document.forms; // 获取文档中<form>元素集合;

document.images; // 获取文档中<img>元素集合;

(3).Element类型:

Element类型用于表现HTML中的元素节点.

元素节点的nodeType为1;nodeName为元素的标签名;

(4).Text类型:

// Text类型用于表现文本节点类型,文本不包含HTML,或包含转以后的HTML;文本节点的nodeType为3;
// 在同时创建两个同一级别的文本节点的时候,会产生分离的两个节点;
  var box = document.createElement('div');
  var text1 = Document.createTextNode('Mr');
  var text2 = Document.createTextNode('Lee!');
  box.appendChild(text1);
  box.appendChild(text2);
  document.body.appendChild(box);
  alert(box.childNodes.length);    // =>2;两个文本节点;
  
// 把两个同邻的文本节点合并在一起,使用normalize()即可;
  box.normalize();          // 合并成一个节点;
  
// 将一个节点实现分离;
  box.firstChild.splitText(3);    // 分离一个节点;
  
// Text还提供一些别的DOM操作的方法
  var box = document.getElementById('box');
  box.firstChild.deleteData(0,2);       // 删除从0位置开始的2个字符;
  box.firstChild.insertData(0,'Hello');    // 从0位置开始添加指定字符;
  box.firstChild.replaceData(0,2,'Miss');   // 从0位置替换掉2个指定字符;
  box.firstChild.substringData(0,2);      // 从0位置获取2个字符,直接输出;
  alert(box.firstChild.nodeValue);       // 输出操作后的结果;

(5).Comment类型:Comment类型表示文档中的注释。

nodeType是8。

nodeName是#comment。

nodeValue是注释的内容。

var box = document.getElementById('box');
alert(box.firstChild); // Comment;

(6).Attr类型:

Attr类型表示文档元素中的属性。

nodeType为11。

nodeName为属性名。

nodeValue为属性值。

一线大厂高级前端编写,前端初中阶面试题,帮助初学者应聘,需要联系微信:javadudu

回复

我来回复
  • 暂无回复内容