JavaScript 温故而知新(八)DOM基础

文章目录

JavaScript的 DOM基础

DOM查找方法

document.getElementById(“id”):

语法:document.getElementById(“id”)
功能:返回对拥有指定ID的第一个对象的引用
返回值:DOM对象
说明:id为DOM元素上id属性的值

	<body>
		<div id="box" class="box">元素</div>
		<script>
			//获取id为box的这个元素
			var box = document.getElementById("box");
			console.log(box);
			//输出 <div id="box" class="box">元素</div>
		</script>
	</body>
document.getElementsByTagName(“tag”):

语法:document.getElementsByTagName(" tag ")
功能:返回一个对所有tag标签引用的集合
返回值:数组
说明:tag为要获取的标签名称

	<body>
		<ul id="list1">
			<li>前端开发</li>
			<li>服务器端开发</li>
			<li>UI设计</li>
		</ul>
		<ol>
			<li>js原生</li>
			<li>js框架</li>
		</ol>
		<script>
			//获取页面中所有的li
			var lis = document.getElementsByTagName("li");
			console.log(lis.length);
			//输出5,返回的是数组,表示5个li
			
			//获取id为list1下的所有的li
			var lis2 = document.getElementById("list1").getElementsByTagName("li")
			console.log(lis2.length);
			//输出长度3
		</script>
	</body>

设置元素样式

ele.style.styleName = styleValue

语法:ele.style.styleName = styleValue
功能:设置ele元素的CSS样式
说明:
1、ele为要设置样式的DOM对象
2、styleName为要设置的样式名称(不能使用" - "连字符形式 font-size 使用驼峰命名形式fontSize)
3、styleValue为设置的样式值

	<body>
		<div id="box" class="box">元素</div>
		<ul id="list">
			<li>前端开发</li>
			<li>服务器端开发</li>
			<li>UI设计</li>
		</ul>	
		<script>	
			//设置id为box的这个元素的文字颜色
			var box = document.getElementById("box");
			box.style.color = "#f00";
			//属性是减号链接的复合形式时,必须要转换为驼峰形式
			box.style.fontWeight = "bold";
			
			var lis = document.getElementById("list").getElementsByTagName("li");
			//因为getElementsByTagName返回的是数组
			//遍历每一个li
			for (var i=0,len=lis.length; i<len; i++){
				console.log(lis[i]);
				//输出lis[0],等于<li>前端开发</li>
				//输出lis[1],等于<li>服务器端开发</li>
				//输出lis[2],等于<li>UI设计</li>
				lis[i].style.color = "#00f";//设置为蓝色
				//设置li的背景颜色
				if(i == 0){
					lis[i].style.backgroundColor = "#ccc";
				}else if(i == 1){
					lis[i].style.backgroundColor = "#ff0";
				}else if(i == 2){
					lis[i].style.backgroundColor = "#0f0";
				}else{//其他
					lis[i].style.backgroundColor = "#333";
				}
			}
		<script>
	</body>

DOM(innerHTML和className)

innerHTML

1、语法:ele.innerHTML
1、功能:返回ele元素开始和结束标签之间的HTML

2、语法:ele.innerHTML = " html "
2、功能:设置ele元素开始和结束标签之间的 HTML内容为html

className

1、语法:ele.className
1、功能:返回ele元素的class属性

2、语法:ele.className=" cls "
2、功能:设置ele元素的class属性为cls

	<body>
		<div id="box" class="box">元素</div>
		<ul id="list">
			<li>前端开发</li>
			<li class="on">服务器端开发</li>
			<li>UI设计</li>
		</ul>
		<ol>
			<li>js原生</li>
			<li>js框架</li>
		</ol>
		<script>
			var lis = document.getElementById("list").getElementsByTagName("li");
			for(var i=0, len=lis.length; i<len; i++){
				console.log(lis[i].innerHTML);
				//输出li的HTML,包括li里的标签和文本
					//<i>前端开发</i>
					//<b>服务器端开发</b>
					//UI设计
				lis[i].innerHTML = lis[i].innerHTML + '程序';
				//简写:lis[i].innerHTML += '程序';
				//输出每个li文本后面都加上程序两个字
					//前端开发程序
					//服务器端开发程序
					//UI设计程序
				
				//添加类current
				lis[1].className = "current";
				//说明:li本身有class="on",className动态添加class,是重新设置类,会替换元素本身的class
			}
			console.log(document.getElementById("box").className);
			//输出box
		</script>
	</body>

DOM属性获取与设置、删除

获取属性、自定义属性的getAttribute()
	<body>
		<p id="text" class="text" align="center" data-type="title">文本</p>
		<input id="user" type="text" name="user" value="user" validate="true">
		<script>
			var p = document.getElementById("text");
			//除了获取class属性是className,其他是直接是html标签属性
			console.log(p.className);
			//输出text
			console.log(p.align);
			//输出center
			//data-type是自定义属性,所以console.log(p.data-type)获取不了
			console.log(p.getAttribute("data-type"));
			//输出title
			console.log(p.getAttribute("class"));
			//等于p.className
			
			var user = document.getElementById("user");
			//获取input自带的标签属性
			console.log(user.type);//输出text
			console.log(user.name);//输出user
			console.log(user.value);//输出user
			//获取input自定义属性
			console.log(user.getAttribute("validate"));//输出true
		</script>
	</body>
设置属性 ele.setAttribute(“attribute”,“value”)

语法:ele.setAttribute(“attribute”,“value”)
功能:在ele元素上设置属性
说明:
1、ele是要操作的dom对象
2、attribute为要设置的属性名称
3、value为设置的attribute属性的值
注意:
1、setAttribute方法必须要有两个参数
2、如果value是字符串,需加引号
3、setAttribute()有兼容性问题

删除属性 ele.removeAttribute(“attribute”)

语法:ele.removeAttribute(“attribute”)
功能:删除ele上的attribute属性
说明:
1、ele是要操作的dom对象
2、attribute为要删除的属性名称

	<body>
		<p id="text" class="text" align="center" data-type="title">文本</p>
		<input id="user" type="text" name="user" value="user" validate="true">
		<script>
			var p = document.getElementById("text");
			var user = document.getElementById("user");
			//给p设置一个自定义属性data-color的属性
			p.setAttribute("data-color","red");
			//给input设置一个isRead的属性
			user.setAttribute("isRead","false");
			//删除p上的align属性
			p.removeAttribute("align");
		</script>
	</body>
JavaScript 温故而知新(八)DOM基础JavaScript 温故而知新(八)DOM基础 <李小狮 / > 发布了8 篇原创文章 · 获赞 2 · 访问量 255 私信 关注
上一篇:Nginx的gzip压缩的原理和设置参数


下一篇:react + node + mysql 全栈项目在centos7 服务器部署上线全过程