JavaScript对DOM的操作

一、DOM节点的获取方法:

document.getElementById()
document.getElementsByTagName()
document.getElementsByClassName()       //IE 5678 不支持

 .parentNode                 //父节点元素
 .children					 //子元素的集合
 .firstElementChild    		 //第一个子元素节点
 .lastElementChild   		 //最后一个子元素节点
 .previousElementSibling     //前一个元素节点
 .nextElementSibling         //后一个元素节点

二、DOM节点添加、移除、替换:

	.insertBefore(A,B)		// 在B子节点前面添加A子节点
	.appendChild(A)			// 添加A子节点(子节点的末尾)
	.removeChild(A)			// 移除A子节点
	.replaceChild(A,B)		// 用A子节点替换B子节点

三、DOM元素/属性/文本创建:

	.createElement('p')					// 创建元素
 	.createAttribute('src')				// 创建属性
    .createTextNode('啦啦啦')			// 创建文本
    .getAttribute('href')				// 获取属性
    .setAttribute('title','my-title')	// 设置属性

四、使用讲解

结构代码

<body>
	<div id="mydiv">
		<p class="myp">第一个子节点</p>
		<p class="myp"></p>
	</div>
</body>

A、添加元素

//方法一
		//添加元素
		var NewChild  = document.createElement('p');
		document.body.appendChild(NewChild);
		// 添加文本
	    var childText = document.createTextNode('方法一添加子元素');
	    NewChild.appendChild(childText)
	    //添加title属性
	    var childAtt  = document.createAttribute('title');
    	childAtt.value = "my-title";
    	NewChild.setAttributeNode(childAtt);
    	// 等价于 NewChild.setAttribute('title','my-title');
//方法二		(创建此节点是没有子元素,不然内容会被删除,覆盖)
		var mydiv = document.getElementById('mydiv');
    	mydiv.innerHTML = "<p>方法二添加子元素</p>";
    	mydiv.title = "my-title";

B、删除元素/节点

//方法一
		//删除div元素	(从body节点出发)
		var mydiv = document.getElementById('mydiv');
		document.body.removeChild(mydiv)
//方法二
		//删除div元素  	(从自身节点出发)
		var mydiv = document.getElementById('mydiv');
		mydiv.parentNode.removeChild(mydiv)
//方法三
		//删除div元素  	(从子节点出发)
		var myps = document.getElementsByClassName("myp");
    	myps[0].parentNode.parentNode.removeChild(myps[0].parentNode)
//方法四
		//删除div元素  	(从兄弟节点出发,需要存在相邻的节点)
		var mydiv = document.getElementById('mydiv');
   	 	document.body.replaceChild(mydiv.nextElementSibling,mydiv) //下一个子元素代替div元素,从而删除
   	 	//document.body.replaceChild(mydiv.previousElementSibling,mydiv)	//上一个子元素代替div元素,从而删除

C、添加文本/属性

//方法一	
		var myps = document.getElementsByClassName("myp");
		//添加文本
	    var childText = document.createTextNode('添加的文本');
	    myps[1].appendChild(childText)
	    //添加title属性
	    var childAtt  = document.createAttribute('title');
    	childAtt.value = "my-title";
    	myps[1].setAttributeNode(childAtt);
    	// 等价于 myps[1].setAttribute('title','my-title');
//方法二 	(p标签不能这样添加name属性(无意义),input标签可以)
		var myps = document.getElementsByClassName("myp");
		//添加文本
		myps[1].innerText = "添加的文本" 		//myps[1].innerHTML = "添加的文本"
	    //添加title属性
    	myps[1].title = "my-title"			//myps[1].setAttribute('title','my-title')
    	//添加class属性
    	myps[1].className += ' myClass';    //去除'+',就是覆盖
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值