js--Dom(四) 样式+节点操作

样式操作—获取和设置样式


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<!--  获取样式
			 语法:元素.style.css样式名
			 如果要操作的样式名是两个单词组合成的,那么要去掉"-",再把第2个单词首字母改成大写
			 设置样式
			 1.设置单个样式:  元素.style.css样式名=值;
			 2.设置多个样式:元素.style.cssText="样式1:值1;样式2:值2...样式n:值n";
		-->
		  <div id="dd" style="background-color: red;color: white;font-size: 28px;">我是div里的内容</div>
		  <input type="button" id="btn1" value="获取div的样式" />
		    <input type="button" id="btn2" value="设置div的样式" />
		      <input type="button" id="btn3" value="设置div的多个样式" />
		  <script>
		  	  //获取按钮
		  	 var btn1=document.getElementById('btn1');
		  	 //获取要操作的div
		  	 var div= document.getElementById('dd');
		  	 //添加单击事件
		  	 btn1.onclick=function(){
		  	 	  //获取div的color样式
		  	 	  var color= div.style.color;
		  	 	  console.log("颜色:"+color);
		  	 	  //获取div的background-color
		  	 	 var bgColor=  div.style.backgroundColor;
		  	 	 console.log("背景色:"+bgColor);
		  	 	var size= div.style.fontSize;
		  	 	console.log("字体大小:"+size);
		  	 }
		  	 	  //获取按钮
		  	 var btn2=document.getElementById('btn2');
		  	 //添加单击事件
		  	 btn2.onclick=function(){
		  	 	//设置div的color为绿色
		  	 	div.style.color="green";
		  	 	//设置div的背景色为蓝色
		  	 	div.style.backgroundColor="blue";
		  	 }
		  	  	  //获取按钮
		  	 var btn3=document.getElementById('btn3');
		  	 btn3.onclick=function(){
		  	 	//给div设置color,背景色2个样式
		  	 	div.style.cssText="color:blue;background-color: yellow;";
		  	 }
		  </script>
	</body>
</html>

在这里插入图片描述

节点—节点关系


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<!--parentNode:访问父节点
			 children:访问子节点,返回的是所有子节点构成的数组
			
		-->
		
		<div id="parent" style="background-color: yellow;">
			 <button id="btn1">获取父节点</button>
		</div>
	<ul id="parentUl">
        <li>重庆</li>
        <li>上海</li>
        <li>武汉</li>
    </ul>
     <button id="btn2">获取ul的子节点</button>
		<script>
			var btn1=document.getElementById('btn1');
			btn1.onclick=function(){
				 //按钮的父节点
				var pnode=btn1.parentNode;
				console.log(pnode.style.backgroundColor);
			}
			var btn2=document.getElementById('btn2');
			btn2.onclick=function(){
				  //获取ul
				 var ul=document.getElementById('parentUl');
				 //获取子节点
				var childs= ul.children;
				 for(var i=0;i<childs.length;i++){
				 	  console.log(childs[i]);
				 }
			}
		</script>
	</body>
</html>

在这里插入图片描述

节点—节点操作


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
     <div id="parent">
        <h1>我是标题</h1>
        <span id="msg">我是一个span</span>
          <span id="msg2">我是第2个span</span>
      </div>
      <input type="button" id="btn1" value="插入节点到末尾" />
        <input type="button" id="btn2" value="插入节点到参考节点前" />
        
          <input type="button" id="btn3" value="删除节点" />
       <script>
       /*	  插入节点:
       	   1.父节点.appendChild():参考父节点,插入到父节点的末尾
       	*   2.父节点.insertBefore(新节点,参考节点): 在参考节点前插入一个新的节点
       	*   3.父节点.removeChild(子节点):删除一个子节点
       	   * 
       	   * */
       	  var btn1=document.getElementById('btn1');
       	  //父节点
       	  var div=document.getElementById('parent');
       	  //给按钮添加单击事件
       	  btn1.onclick=function(){
       	  	  //1.创建节点
       	  	 var h2= document.createElement('h2');
       	  	 h2.innerHTML="我是新标题标签";
       	  	 //2.往父节点中插入
       	  	 div.appendChild(h2);
       	  }
       	    var btn2=document.getElementById('btn2');
       	    
       	    var span=document.getElementById('msg');
       	    
       	    btn2.onclick=function(){
       	    		  //1.创建节点
       	  	 var h3= document.createElement('h3');
       	  	 h3.innerHTML="我是新标题标签h3";
       	  	   //2.在参考节点span前插入新节点
       	  	   div.insertBefore(h3,span);
       	    }
       	    var btn3=document.getElementById('btn3');
       	    btn3.onclick=function(){
       	    	//删除第1个span
       	    	//div.removeChild(span);
       	    	//在不知道父节点的情况下,可以先通过parentNode获取父节点,再来删除
       	    	span.parentNode.removeChild(span);
       	    }
       </script>
	</body>
</html>

在这里插入图片描述

节点—节点复制


<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			#parent{
				 background-color: yellow;
				 width: 300px;
				 height: 300px;
			}
			#desc{
				 width:400px;
				 height: 400px;
				 background-color: gray;
			}
		</style>
	</head>

	<body>
      
		<div id="parent">
			<h1>我是标题h1</h1>
			<h2>我是标题h2</h2>
		</div>
		 <input type="button"  id="btn" value="复制节点" />
		 <div id="desc">
		 	
		 </div>
		 <script>
		 	 /**
		 	  *  复制节点的语法:
		 	  *   要复制的节点.cloneNode(参数),参数为true表示深复制,即复制节点及它的子节点
		 	  *  false表示浅复制,只复制节点本身,不复制子节点,返回复制后的节点(原始节点的副本)
		 	  * 注意:调用appendChild插入节点时,如果希望它本身还保留在文档中,那么就要先对它做一个复制,
		 	  * 调用cloneNode()返回它的副本(复印件),否则该节点就直接消失了(剪切)
		 	  */
		 	var btn=document.getElementById('btn');
		 	btn.onclick=function(){
		 			//获取要复制的节点
		      var parentDiv=document.getElementById('parent');
		       //返回复制后的新节点
		  var newNode= parentDiv.cloneNode(false);
		    document.getElementById('desc').appendChild(newNode);
		     
		      //document.getElementById('desc').appendChild(parentDiv);
		 	}
		 
		 </script>
	</body>

</html>

在这里插入图片描述

添加和删除案例


<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			#parent{
				 background-color: yellow;
				 width: 300px;
				 height: 300px;
			}
			#desc{
				 width:400px;
				 height: 400px;
				 background-color: gray;
			}
		</style>
	</head>

	<body>
      <table id="mytable" width="50%"  border="1"  cellpadding="10" cellspacing="0">
      	<!--  有些浏览器不会生成tbody标签,如果发现了有tbody,就自己手动用tbody包裹所有的tr -->
      	<tbody>
      	 <tr>
      	 	<th>姓名</th><th>性别</th><th>年龄</th><th>操作</th>
      	 </tr>
      	 
      	  <tr>
      	  	<td>张三丰</td><td>男</td><td>80</td><td> <input type="button" name="btn2" value="删除一行" onclick="deleteRow(this)"></td>
      	  </tr>
      	  </tbody>
      </table>
		 <input type="button" id="btn1" value="添加一行">
		 <script>
		 	var btn1= document.getElementById('btn1');
		 	//点按钮1,添加一行
		 	btn1.onclick=function(){
		 		 //创建1行
		 		 var tr=document.createElement('tr');
		 		 //设置内容
		 		 tr.innerHTML="<td>赵敏</td><td>女</td><td>23</td><td><input type='button' name=\"btn2\" value='删除一行' onclick=\"deleteRow(this)\" ></td>";
		 		 //获取tbody
		 		var tbody= document.getElementsByTagName('tbody')[0];
		 		tbody.appendChild(tr);
		 	}
		 	//点按钮2,删除一行
		 	//直接给删除按钮添加事件,不按事件的三要素来添加事件,直接在删除按钮上添加onclic事件,该事件调用的函数是deleteRow
		 	function deleteRow(btn){
		 		 //通过删除按钮找到它所在的行,再删除行
		 		var tr= btn.parentNode.parentNode;
		 		tr.parentNode.removeChild(tr);
		 	}

		 </script>
	</body>

</html>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41532872/article/details/86498177