js document对象

doucment对象

浏览器对外提供的支持js的用来操作HTML文档的一个对象,此对象封存HTML文档的所有信息

浏览器在解析HTML文档时,将HTML加载到内存中,并将内存中的HTNL转换成一个doucuent对象。我们操作HTML文档其实操作的是document文档

document

获取HTMl元素对象

(1).直接获取 方式

1.通过id


window.getElementById("某一标签的id属性值");

2.通过name属性值

window.getElementByName("某一标签的name属性值");

3.通过标签名

window.getElementByTagName("标签名");

4.通过class属性值

window.getElementByClassName("某一属性的class属性值");
(2)间接获取方式

1.父子关系


var father=document.getElementById("父标签的id属性");   首先获取父级标签



var childs=father.childNodes;              然后通过父标签的childNodes获取子标签(返回的是一个数组)

2.子父关系

var son=document.getElementById("子标签的id属性");      获取子标签

var father=son.parentNode;               通过子标签的parentNode获取父标签 (返回的不是数组,是父标签对象)

3.兄弟关系


var ele=document.getElementById("元素的标签id");         获取标签对象 

var preEle=ele.previosSibing;     //获取其前面的标签对象

var nextEle=ele.nextSibing;       //获取其后面的标签对象




二.js操作元素属性

(1)获取元素属性

1.获取固有属性
获取固有属性,也就是获取标签本来的自带的属性


元素对象名.属性名                    //返回的是元素的属性值
           

2.获取自定义属性
元素可以自定义属性

<input type="text" name="uname" id="uname" value="" myFiled="自定义属性"/>

比如在input标签里自定义一个标签属性myFiled

自定义属性值可以通过getAttribute方法获得

元素对象.getAttribute("自定义属性名");          //返回自定义属性值 
(2)修改元素属性

1.修改固有属性值

修改固有属性值通过直接重新赋值

<input type="text" name="uname" id="uname" value=""/>


function test(){
		var in=document.getElementById("uname");
		var.type=“button”;
}

2.修改自定义属性值
修改自定义属性值要通过setAttribute方法

    setAttribute("自定义属性名","新的自定义属性值");
<input type="text" name="uname" id="uname" value="" myFiled="自定义属性"/>

function test(){
		var in=document.getElementById("uname");
		in.setAttribute("myFiled","hello");            //更改自定义属性值
}

三.js操作元素内容

(1)获取元素内容

1.返回所有内容

元素对象名.innerHTML     

返回的是当前元素对象内的所有内容,它是包含HTML标签的

2.返回文本内容


元素对象名.innerText

返回的是当前元素对象内的所有文本内容,它是 包含HTML标签的


innerHTML与innerText的对比

<html>
	<head>
		<meta charset="UTF-8"/>
		<script type="text/javascript">
				function test(){
						var ele=document.getElementById("mydiv");
						var inHtmL=ele.innerHTML;
						var inText=ele.innerText;
						alert(inHtmL);
						alert(inText);
				}
		</script>
	</head>
	<body>
			<div id="mydiv">
				<b>欧文牛逼</b><br>
				<h3>无兄弟不篮球</h3><br>
			</div>
			<input type="button" onclick="test()" value="测试"/>
	</body>
</html>

在这里插入图片描述

在这里插入图片描述
可以看出innerHTML包含了所有内容,包含了标签,innerText只包含了文本内容

(2)修改元素内容

元素对象名.innerHTML="新的值"     //会将原有内容覆盖,并HTML标签会被解析
元素对象名.innerHTML=元素对象名.innerHTML+"新的值"//追加效果


元素对象名.innerText="新的值"  //会将原有内容覆盖,但HTML标签不会被解析,会作为普通文本显示。

<html>
	<head>
		<meta charset="UTF-8"/>
		<style>
			#mydiv01{
				border: solid 1px;
				margin-bottom: 10px;
			}
			#mydiv02{
				border: solid 1px;
				margin-bottom: 10px;
			}
		</style>
		<script type="text/javascript">
				function test(){
						var ele=document.getElementById("mydiv01");
						ele.innerHTML="<b>加油</b>";
					    
				}
				function test2(){
						var ele=document.getElementById("mydiv02");
						ele.innerText="<b>加油</b>";
		
				}
		</script>
	</head>
	<body>
			<div id="mydiv01">
				<b>欧文牛逼</b><br>
				<h3>无兄弟不篮球</h3><br>
			</div>
			<div id="mydiv02">
				<b>欧文牛逼</b><br>
				<h3>无兄弟不篮球</h3><br>
			</div>
			
			<input type="button" onclick="test()" value="测试innerHTML"/>
			<input type="button" onclick="test2()" value="测试innerText"/>
	</body>
</html>

在这里插入图片描述
按两个按钮后
在这里插入图片描述
可以看出innerText不会解析标签

三.js操作元素样式

(1)通过style属性
元素对象名.style.样式名="样式值"   //添加或者修改    如果最初的样式没有赋值,则可以通过赋值实现添加

元素对象名.style.样式名=""        //删除样式

通过元素的style属性实际上就是在元素标签的style属性上进行css样式操作、

注意::以上操作,操作的是HTML的style属性声明中的样式。而不是其他css代码域中的样式。

如果通过赋值为""删除样式,删除的只是HTML的style属性声明中的样式,并不能删除css代码域的样式

(2)通过className

通过className可以操作元素的类选择器

元素对象名.className="新的值"//添加类选择器样式或者修改类选择器样式
元素对象名.className=""//删除类样式。
<html>
	<head>
		<meta charset="UTF-8"/>
		<style type="text/css">
			#showdiv{
				width: 200px;
				height: 200px;
				border: solid 1px;
			}
			
			.common{
				width: 200px;
				height: 200px;
				border: solid 1px;
			}
			
			.common2{
				width: 200px;
				height: 200px;
				border: solid 1px;
				background-color: aqua;
			}
		</style>
		<script type="text/javascript">
					function testOperCss(){
							var showdiv=document.getElementById("showdiv");
							showdiv.style.backgroundColor="#FFA500";
							showdiv.style.border="solid 2px red";
							showdiv.style.border="";
					}
			
					function testOperCss2(){
							var div01=document.getElementById("div01");  //获取元素对象
							alert(div01.className);
							div01.className="common2";  
			
												
					}	
		</script>
	</head>
	<body>
		<h3>js操作元素的样式</h3>
		<input type="button" name="" id="" value="测试--style" onclick="testOperCss()" />
		<input type="button" name="" id="" value="测试className" onclick="testOperCss2()" />
		<hr />
		<div id="showdiv" style="border: solid 2px blue;">
			
		</div>
		<div id="div01" class="common">
			
		</div>
	</body>
</html>

四.js操作元素的文档结构

(1)新建节点

通过createElement

var 变量名=document.createElement("标签名")//返回创建的HTML元素对象

这只是创建了一个结点,并没有添加,要使用appendChild()方法追加到某一结点下

(2)增加节点

1.通过innerHTML

div.innerHTML=div.innerHTML+"内容"//增加节点

2.通过appendChild

var obj=document.createElement("标签名");
元素对象名.appendChild(obj);
<html>
	<head>
		<meta charset="UTF-8"/>
		<script type="text/javascript">
				function test(){
				
				var btn=document.createElement("input");
				btn.type="button";
				btn.value="删除";
                var br=document.createElement("br");
				var ele=document.getElementById("div1");
				ele.appendChild(btn);
				ele.appendChild(br);
				}
		</script>
	</head>
	<body>
			
			<input type="button" onclick="test()" value="测试"/>
			<div id="div1"></div>
	</body>
</html>
(3)删除节点
父节点.removeChild(子节点对象)//删除指定的子节点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值