关于DOM的增删改那些事

DOM的了解

Dom是针对HTML和XML文档的一个API(应用程序编程接口),它秒回的是一个层次化的节点树,允许开发人添加,移除,和修改某一部分。

Document

1.Document类型可以表示HTML页面或基于XML的文档,不过最常见的还是作为HTMLDocument实例的document对象。

//所有浏览器都支持 document.documentElement和document.body
	var html =document.documentElement;
	alert(html === document.childNodes[0]);
	var body=document.body;

2.文档信息

/*
	IE8和之前版本为NULL,IE9+和Firefox如果存在文档类型声明,则将起作为味道的第一个子节点,
	Safari,Chrome和Opera如果存在文档类型则将其解析,但不作为文档的子节点
	*/
	var doctype=document.doctype;
	console.log(doctype);

	/* 获取文档标题 */
	var title=document.title;
	console.log(title)

	/*
	URL属性中包含页面完整的URL
	domain属性中只包含页面的域名
	referrer属性中则保存这链接到当前页面的那个页面的URL
	*/
	var url =document.URL;
	var domain=document.domain;
	var referrer=document.referrer;
	console.log('url'+url);
	console.log('domain'+domain);
	console.log('referrer'+referrer);

3.document的其他属性

<input type="text" name="box">
<div id="box">
	<div class="box1" name="name11">1</div>
	<div class="box2" name="name12">2</div>
	<div class="box3" name="name12">3</div>
	<div class="box4">4</div>
</div>
/* 
	getElementById:
	取得div元素的引用,IE7以及更早版本为NULL。
	但是IE7以及低版本中,当name特效和id都是box的时候,会返回input元素。
	所以写表单的name属性的时候尽量别和其他ID相同*/
	var oDiv=document.getElementById("box");
	console.log(oDiv);


	/*
	getElementsByTagName,接受一个参数(元素的标签名),
	返回一个HTMLCollection对象
	属性和方法:
	length属性获取元素的数量
	item()方法访问对象中的项
	namedItem()通过元素的name特性取得集合中的项
	【可以简化为[],方括号传入数值或字符串形式的所有值之后,会自动调用item和namedItem方法】

	*/
	var oDiv1=document.getElementsByTagName("div");
	console.log(oDiv1.length);//5
	console.log(oDiv1.item(1));//<div class="box1" name="name11">1</div>
	console.log(oDiv1.namedItem('name11'));//<div class="box1" name="name11">1</div>
	console.log(oDiv1[1]);//<div class="box1" name="name11">1</div>


	/*
	其他少用的
	getElementsByName()返回带有给的name特性的所有元素
	document.anchors,所有带name特性的<a元素>
	document.forms,所有的<form>元素
	document.images,所有的<img>元素
	*/

	/*
	文档写入
	write(),writeln()写入到输出流中的文本
	open()和close()分布用于打开和关闭网页的输出流
	*/
	document.write("<strong>"+(new Date()).toString()+"</strong>")

Element类型

1.了解

Element类型用于表现XML或HTML元素,提供对元素标签名、子节点及特性的访问。

2.元素属性

/*
	访问元素的标签名,可以用nodeName也可以用tagName
	*/
	var oDiv=document.getElementById("box");
	console.log(oDiv.tagName);//DIV
	console.log(oDiv.tagName ==oDiv.nodeName)//true
	//用于判断是否这个元素【使用任何文档】
	if(oDiv.tagName.toLowerCase() == "div"){
		console.log("对的")
	}

	/* 获取类-className,title,lang等等*/
	console.log(oDiv.className);
	console.log(oDiv.title);
	console.log(oDiv.lang);

	/*
	因为元素特性太多,一个个获取太麻烦,虽有又出来三个新方法方便获取
	getAttribute(),setAttribute(),removeAttribute()
	*/
	console.log(oDiv.getAttribute("id"));
	console.log(oDiv.getAttribute("class"));
	oDiv.setAttribute("title","editTitle")
	console.log(oDiv.getAttribute("title"));

3.元素的增删

	/* 创建元素 */
	var pE=document.createElement("p");
	var oDiv=document.createElement("div");
	/*  创建文本节点*/
	var textNode=document.createTextNode("Hello World!");
	var otherText=document.createTextNode("petter Here");
	/*把元素添加到文档树
	appendChild()
	insertBefote()
	replaceChild()
	*/
	pE.appendChild(textNode);
	pE.appendChild(otherText);
	console.log(pE.childNodes.length);//2
	//normalize()将文本节点合并成一个节点
	pE.normalize();
	console.log(pE.childNodes.length);//2
	oDiv.appendChild(otherText);
	document.body.appendChild(pE);
	document.body.appendChild(oDiv);

	/* 删除元素 */
	document.body.removeChild(oDiv)

猜你喜欢

转载自blog.csdn.net/qq_28004379/article/details/83782367