js.DOM操作及练习

版权声明:欢迎阅读,有误请指正,转载请申明。 https://blog.csdn.net/wx1995sss/article/details/87808668
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
//			DOM对象常用的方法
						
		/*	DOM节点分为三类:元素节点,属性节点,文本节点。
		 * 	getElemenById("id") -- 返回指定id名的元素节点
			getElementsByTagName("标签") -- 返回带有指定标签名的所有元素节点列表(以数组的形式存储)
			getElementsByClassName("class") -- 返回带有指定class名的所有元素节点列表(以数组的形式存储)
			getElementsByName("name") -- 返回带有指定name的所有元素节点列表(以数组的形式存储),name常用在表单
			appendChild() -- 把新的子节点添加到指定节点
			removeChild() -- 删除子节点,一个参数,要移除的节点
			replaceChild(a,b) --替换子节点 a新节点,b旧节点
			cloneNode() -- 克隆(复制节点) 一个参数,true或false,true克隆当前节点和当前节点的子节点,false只克隆当前节点。
			insertBefore(a,b) --在指定子节点前面插入新的子节点,a新节点,b目标节点b.parentNode.insertBefore(a,b)
			createElement() -- 创建元素节点
			createAttribute() --创建属性节点
			createTextNode() --创建文本节点
			getAttribute() --获取指定属性的值
			setAttribute() --设置指定属性的值
		*/
			
		</script>
	</head>
	<body>
		<div id ="div1">这是div1</div>
		<p>第一个p标签</p>
		<p>第二个p标签</p>
		<p class="p3">第三个p标签</p>
		<a id="href1" href="http://www.baidu.com">链接</a>
		<script>
			var div1 = document.getElementById("div1");//getElementById(),如果出现多个相同id,选取第一个
			console.log(div1);
			
			var p3 = document.getElementsByTagName("p");
			console.log(p3);
			for(var i = 0; i<p3.length; i++){
				console.log(p3[i]);
				p3[i].onclick = function(){
					alert("点击");
				}
			}
			
			var p32 = document.getElementsByTagName("p")[2];
			console.log(p32);
			
			p32.onclick = function(){
				alert("添加了点击事件~");
			}
			
			var href1 = document.getElementById("href1");
			console.log(href1.getAttribute("href"));
			href1.setAttribute("href","http://www.360.com");//setAttribute()在IE浏览器可能存在兼容问题
			console.log(href1.getAttribute("href"));
			//解决方案:
//			1.使用className直接去设置class类名
			href1.className = "con";
			href1.href = "###";
			//如果我们的元素节点内有属性的,可以通过元素节点.属性 = "属性值"来修改属性值。
			console.log(href1.getAttribute("href"));
			
			//样式设置的两种方式
			href1.style.fontSize = "16px";//设置单个样式,使用小驼峰命名
			href1.style = "color:green;text-decoration:none;"
			
//			文本节点
//			innerHTML  替换节点里面的HTML代码,在innerHTML里面写html代码可以被识别
//			innerText  替换节点里面的文字内容,不识别html
//			href1.innerHTML = "<span>这是innerHTML设置的文本节点</span>";
//			div1.innerText = "<p>这是innerText设置的文字内容</p>";
			
			href1.onclick =function(){
				div1.innerText = "点击id名为href1的a标签之后<p>这是innerText设置的文字内容</p>";
				href1.style = "color:red;font-size:16px";
			}
		</script>
		<!--2.18-->
			<ul class= "uls">
			<li><p><a href="">1</a></p></li>
			<li><p><a href="">2</a></p></li>
			<li><p><a href="">3</a></p></li>
			<li><p><a href="">4</a></p></li>
			</ul>
		<script>
			var uls = document.getElementsByClassName("uls")[0];
			var li = uls.children;
			for(var i=0; i<li.length;i++){
				var li_p = li[i].children;
				console.log(li_p[0]);
			}
			//用递归写
			var uls = document.getElementsByClassName("uls")[0];
			var li = uls.children;
			var sum = function(x){
				for(var i =0;i<x.length; i++){
					if(x[i].children.length != 0){
						 arguments.callee(x[i].children);
					}else{
						console.log(x[0]);
					}
				}
			}
			sum(li);
		</script>
		<script>
		/*	querySelector()和querySelectorAll()获取元素节点,ie8以下版本不支持
			document.querySelector("#div");必须带上选择器符号
			document.querySelectorAll("#div>p")获取所有符合条件的元素节点,返回数组 */
		</script>
		<script>
			/*查看子元素的节点
			1.childNodes:获取元素的所有子节点(文本节点和子元素节点)
			2.children:获取当前元素的所有子元素节点
			3.firstChild:获取元素的第一个子节点(文本节点和子元素节点)
			4.firstElementChild:获取当前元素的第一个子元素节点
			5.lastChild:获取元素的最后一个子节点(文本节点和子元素节点),
			6.lastElementChild:获取元素的最后一个子元素节点*/
		</script>
		<script>
			/*获取父元素节点
			1.parentNode:获取当前节点的父节点
			获取兄弟节点
			1.previousSibling:获取当前节点的前一个兄弟节点(文本节点和子元素节点)
			2.previousElementSibling:获取当前节点的前一个兄弟元素节点
			3.nextSibling:获取当前节点的下一个兄弟节点(文本节点和子元素节点)
			4.nextElementSibling:获取当前节点的下一个兄弟元素节点*/
		</script>
	</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<ul class="ul01">
			<li>
				<p>这里是p标签</p>
				<button>按钮标签</button>
			</li>
			<li>
				<p>这里是p标签</p>
				<button>按钮标签</button>
			</li>
			<li>
				<p>这里是p标签</p>
			</li>
			<li>
				<p>这里是p标签</p>
				<button>按钮标签</button>
			</li>
			<li>
				<p>这里是p标签</p>
				<button>按钮标签</button>
			</li>
		</ul>
		<script>
		//练习,通过查找子元素节点的方法,查找所有的button标签,并给button标签添加点击事件,如果该父元素没有子元素节点
		//就打印该父元素,并打印出该父元素的前后兄弟节点
//		var uls = document.getElementsByClassName("ul01")[0];
//		var lis = uls.children;//li
//		for(var i = 0; i<lis.length; i++){
//			var btn = lis[i].children;
//			for(var j = 0; j<btn.length; j++){
//				var tagName = btn[j].tagName;
//				if(tagName == "BUTTON"){
//					btn[j].onclick = function(){
//						alert(tagName);
//					}
//				}else if(btn.length == 1){
//					var btn_par = btn[j].parentNode;
//					var btn_pre = btn_par.previousElementSibling;
//					var btn_next = btn_par.nextElementSibling;
//					console.log(btn_par);
//					console.log(btn_pre);
//					console.log(btn_next);
//				}
//			}
//		}
//		第2种写法
		var uls = document.getElementsByClassName("ul01")[0];
		var lis = uls.children;
		for(var i = 0; i<lis.length; i++){
			var btn = lis[i].children;
			var tag = lis[i].getElementsByTagName("button")[0];
			if(tag != null){
				tag.onclick = function(){
					alert("YES");
				}
			}else{
				var btn_par = lis[i];
				var btn_pre = lis[i].previousElementSibling;
				var btn_next = lis[i].nextElementSibling;
				console.log(btn_par);
				console.log(btn_pre);
				console.log(btn_next);
			}
		}
		</script>
		<div class="div1">111</div>
		<script>
//			insertBefore(a,b) --在指定子节点前面插入新的子节点,a新节点,b目标节点
//			createElement() -- 创建元素节点
//			createAttribute() --创建属性节点
//			createTextNode() --创建文本节点
			var  div1 = document.getElementsByClassName("div1")[0];
			var ul = document.createElement("ul");
			var li = document.createElement("li");
			var li_text = document.createTextNode("li");
			div1.appendChild(ul);
			li.appendChild(li_text);
			ul.appendChild(li);
			for(var i = 0; i<5; i++){
				var li = document.createElement("li");
				ul.appendChild(li);
			}
		</script>
		<img src="7.jpg" alt="" style="width:100px;height:100px;"/>
		<button onclick="fun()" id="btns">添加图片</button>
		<script>
		function fun(){
				var img = document.getElementsByTagName("img")[0];
				var imgs = img.cloneNode(true);
				var btn = document.getElementById("btns");
				document.body.insertBefore(imgs,btn);
			}
		</script>
		<p id="p1">dsf</p>
		<a href="" id="a1">df</a>
		<script>
			var p1 = document.getElementById("p1");
			var a1 = document.getElementById("a1");
			p1.parentNode.replaceChild(a1,p1);
		</script>
	</body>
</html>

猜你喜欢

转载自blog.csdn.net/wx1995sss/article/details/87808668
今日推荐