案例:(DOM对象)document 文档对象之标签元素的操作(四)(hasChildNodes()、removeChild()、replaceChild()、createElement() 等)

1、标签元素的操作:使用对象调用hasChildNodes()方法判断对象是否含有子节点;有返回true,没有返回false

案例如下:
<html>
  <head>
    <title>form.html</title>
		<meta charset="UTF-8">
  </head>
  
  <body>
	   <form name="form1" action="test.html" method="post" >
			<input type="text" name="tname" value="清华大学100周年_1" id="tid_1"/><br>
			<input type="text" name="tname" value="清华大学100周年_2" id="tid_2"/><br>
			<input type="text" name="tname" value="清华大学100周年_3" id="tid_3"/><br>
			<input type="button" name="ok" value="保存1"/>
  	 </form>
	   
	   <select name="edu" id="edu">
			<option value="博士">博士^^^^^</option>
			<option value="硕士">硕士^^^^^</option>
			<option value="本科" selected="selected" >本科^^^^^</option>
			<option value="幼儿园">幼儿园^^^^^</option>
	   </select>
	   
	   <select name="job" id="job" >
			<option value="美容">美容^^^^^</option>
			<option value="IT">IT^^^^^</option>
			<option value="程序员">程序员^^^^^</option>
			<option value="建筑师">建筑师^^^^^</option>
	   </select>
  </body>
  
  <script  type="text/javascript">
  	//查看id="edu"的节点是否含有子节点
  	//1.获取id是edu的标签对象
  	var eduEle = document.getElementById("edu");
  	//2.使用对象的hasChildNodes方法判断对象是否含有子节点;有返回true,没有返回false
  	var b = eduEle.hasChildNodes();
  	alert(b);//true
  	
   	//查看id="tid_1"的节点是否含有子节点
   	//链式编程
   	alert(document.getElementById("tid_1").hasChildNodes());//false
  </script>
</html>

2、标签元素的操作:使用父节点对象调用removeChild(子节点对象),删除子节点对象

案例如下:
<html>
  <head>
    <title>form.html</title>
		<meta charset="UTF-8">
  </head>
  <body>
		<ul id="city">
		   	<li id="bj" name="beijing">北京</li>
			<li id="sh" name="shanghai">上海</li>
			<li id="cq" name="chongqing">重庆</li>
		</ul>
  </body>
  
  <script  type="text/javascript">
     	//删除<ul id="city"> 下<li id="bj" name="beijing">北京</li>这个节点</ul>
     	//1.获取id是city的父节点对象
     	//var cityEle = document.getElementById("city");
     	//2.获取id是bj的子节点对象
     	var bjEle = document.getElementById("bj");
     	//3.使用父节点对象调用removeChild(子节点对象),删除子节点对象
     	//cityEle.removeChild(bjEle);
     	
     	//document.getElementById("city").removeChild(document.getElementById("bj"));
     	
	 		//获取北京的父节点
	 		//使用子节点的属性parentNode获取父节点对象
	 		var ulEle = bjEle.parentNode;
	 		//alert(ulEle);//[object HTMLUListElement]
	 		alert(ulEle.tagName)//UL
  </script>
</html>
说明:先得拿到子节点这一对象,再通过父节点调用removeChild(子节点对象),删除子节点对象。
可使用匿名对象、链式编程操作。

3、标签元素的操作:使用父节点对象中的方法replaceChild(新的子节点对象,被替换的节点对象)

案例如下:
<html>
  <head>
    <title>form.html</title>
		<meta charset="UTF-8">
  </head>
  <body>
	  您喜欢的城市:<br> 
	   <ul id="city">
			<li id="bj" value="beijing" onclick="bjOnclick()">北京</li>
			<li id="sh" value="shanghai">上海</li>
			<li id="cq" value="chongqing"> 重庆</li>
	   </ul>
	  
	  您喜欢的游戏:<br> 
	   <ul>
			<li id="fk" value="fankong">反恐精英</li>
			<li id="ms" value="moshou">魔兽</li>
			<li id="cq" value="chuanqi">传奇</li>
	   </ul>   
  </body>
  
  <script type="text/javascript">
     	//点击北京节点, 将被反恐节点替换
     	//定义鼠标单击事件的响应函数
     	function bjOnclick(){
     		//可以使用父节点对象中的方法replaceChild(新的子节点对象,被替换的节点对象);
     		//1.获取bj的父节点id是city的对象
     		var cityEle = document.getElementById("city");
     		//2.获取被替换的id是北京的节点对象
     		var bjEle = document.getElementById("bj");
     		//3.获取新的子节点id是fk的对象
     		var fkEle = document.getElementById("fk");
     		cityEle.replaceChild(fkEle,bjEle);//剪切替换
     	}
  </script>
</html>
注:此替换方法是剪切替换。

4、标签元素的操作:使用document对象中的方法createElement(“标签名称”)创建指定标签的对象

案例如下:
<html>
  <head>
    <title>form.html</title>
		<meta charset="UTF-8">
  </head>
  <body>
	   
	  您喜欢的城市:<br> 
	   <ul id="city">
			<li id="bj" value="beijing">北京</li>
			<li id="sh" value="shanghai">上海</li>
			<li id="cq" value="chongqing">重庆</li>
	   </ul>
	  
	  您喜欢的游戏:<br> 
	   <ul>
			<li id="fk" value="fangkong">反恐</li>
			<li id="ms" value="moshou">魔兽</li>
			<li id="xj" value="xingji">星际争霸</li>
	   </ul>
  </body>
  <script  type="text/javascript">
     //增加城市节点 <li id="tj" value="tianjin">天津</li>放置到city下
     //1.使用document对象中的方法createElement("标签名称")创建指定标签的对象 
     var tjEle = document.createElement("li");//<li></li>
     //2.使用对象的setAttribute方法给标签对象添加id和value属性
     tjEle.setAttribute("id","tj");//<li id="tj"></li>
     tjEle.setAttribute("value","tianjin");//<li id="tj" value="tianjing"></li> 
     //3.使用对象的innerHTML属性给标签添加标签体
     tjEle.innerHTML = "天津";// <li id="tj" value="tianjin">天津</li>
     //4.使用父节点对象city里边的方法appendChild(子节点对象),把子节点对象追加到父节点中
     document.getElementById("city").appendChild(tjEle);
  </script>
</html>
说明:createElement(“标签名称”)方法结合setAttribute(“属性名”,“属性值”)方法来添加某些属性及属性值。使用innerHTML属性给标签添加标签体。使用父节点调用方法appendChild(子节点对象),把子节点对象追加到父节点中。

5、标签元素的操作:使用父节点对象中的方法insertBefore(新的子节点,指定的字点),把新的子节点对象,添加到指定的子节点的前面

案例如下:
<html>
  <head>
    <title>form.html</title>
		<meta charset="UTF-8">
  </head>
  <body>
        <ul id="city">
		   	<li id="bj" name="beijing">北京</li>
			<li id="sh" name="shanghai">上海</li>
			<li id="cq" name="chongqing">重庆</li>
		</ul>
  </body>
  
  <script  type="text/javascript">
  	// 在重庆前面插入新的节点 <li id="tj" name="tianjin">天津</li>
  	//1.创建li标签对象,设置属性和标签体
  	var tjEle = document.createElement("li");//<li></li>
    tjEle.setAttribute("id","tj");//<li id="tj"></li>
    tjEle.setAttribute("value","tianjin");//<li id="tj" value="tianjing"></li> 
    tjEle.innerHTML = "天津";// <li id="tj" value="tianjin">天津</li>
  	//2.获取id是cq的标签对象
  	var cqEle = document.getElementById("cq");
  	//3.使用父节点对象city中的方法insertBefore(新的子节点,指定的字点),
  	//把新的子节点对象,添加到指定的子节点的前面
  	document.getElementById("city").insertBefore(tjEle,cqEle);
  </script>
</html>
说明:

appendChild(“子节点”)是追加到后面(父节点内部所有元素的后面)
insertBefore(新的子节点,指定的字点)指的是插入到指定的子节点前面

猜你喜欢

转载自blog.csdn.net/qq_45083975/article/details/91403271