前端DOM编程练习记录1 | 青训营笔记

82 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第7天
对于DOM编程,结合其他网站的资料,进行知识点总结以及如何实现进行记录


innerText 与 innerHTML

innerText只能获取文字内容,展现不了标签的效果
innerHTML可获取文字内容,如有标签效果,则展示标签效果
例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			function innerTextTest(){
				var MyDiv = document.getElementById("myDiv");
				MyDiv.innerText = '<a href="http://www.baidu.com">连接</a>';
			}
			function innerHTMLTest(){
				var MyDiv = document.getElementById("myDiv");
				MyDiv.innerHTML = '<a href="http://www.baidu.com">连接</a>';
			}
		</script>
	</head>
	<body>
	<!--<a href="http://www.baidu.com">连接</a>-->
		<input type="button" value="innerText" onclick="innerTextTest()"/>
		<input type="button" value="innerHTML" onclick="innerHTMLTest()"/>
		<div id="myDiv">测试内容</div>
	</body>
</html>

复选框全选和取消全选按钮

主要了解全选效果是怎样实现的
例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			//点击“全选”标志,让其他标志都打上勾
			function checkAll(checks){
				var a_checks = document.getElementsByClassName("checkOne");
				for(var i=0; i<a_checks.length; i++){
					a_checks[i].checked=checks.checked; 
				}
			}
			/*“全选”标志的自动取消和自动勾选
			 * 自动取消:在“全选”标志打上勾后,取消其他选项后,“全选”标志自动取消的效果;
			 * 自动勾选:在所有选项都勾选后,“全选”标志自动勾选的效果;
			 */
			function setCheckAll(checks){
				var a_one = document.getElementsByClassName("checkOne");
				var a_all = document.getElementById("all");
				var k=0;
				//取消其中的一个
				for(var i=0; i<a_one.length; i++){
				if(a_one[i].checked==false)//如果没有全部选择选项,则“全选”标志不会打上勾
				{
					a_all.checked = false;
				}
				else k++;
				}
				//在全部选择的情况下,“全选”标志打上勾
				if(k==a_one.length){
					a_all.checked = checks.checked;
				}
				
			}
			
		</script>
	</head>
	<body>
		<!--this 表示触发当前事件的HTML元素对象,方便引入当前对象的状态-->
	<input type="checkbox" id="all" onclick="checkAll(this)" />全选<br /> 
	<input type="checkbox" class="checkOne" onclick="setCheckAll(this)" /><br />
	<input type="checkbox" class="checkOne" onclick="setCheckAll(this)" /><br />
	<input type="checkbox" class="checkOne" onclick="setCheckAll(this)" /><br />
	<input type="checkbox" class="checkOne" onclick="setCheckAll(this)" /><br />
	</body>
</html>

多级联动(下拉菜单)

例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			//暂时写一个简短城市名称
			var sc=['成都','绵阳']
			var gd=['广州','深圳']
			var hb=['武汉']
			var yn=['昆明']
			var gx=['桂林']
			
			function setProvince(obj){
				var a_number = obj.value;  //读取数值,判断选择的哪个选项
				var a_city=undefined;  //初始化,防止再次更改时出现错误
				switch(a_number){  
					case "0":
					a_city=sc;
					break;
					case "1":
					a_city=gd;
					break;
					case "2":
					a_city=hb;
					break;
					case "3":
					a_city=yn;
					break;
					case "4":
					a_city=gx;
					break;
				}
				//在省份选项选择完成后,城市选项应该展示的结果
				var b_city = document.getElementById("setCity");   //得到元素
				b_city.innerHTML = '<option >--请选择--</option>';  //初始化
				for(var i=0; i<a_city.length; i++){
					b_city.innerHTML += '<option>'+a_city[i]+'</option>';  
					//注意"+",因为innerHTML每次刷新的时候,会将上次的内容给删除掉
				}
			}
		</script>
	</head>
	<body>
		省份<select onchange="setProvince(this)">
			<option>--请选择--</option>
			<option value="0">四川</option>
			<option value="1">广东</option>
			<option value="2">湖北</option>
			<option value="3">云南</option>
			<option value="4">广西</option>
		</select>
		城市<select id="setCity">
			<option >--请选择--</option>
		</select>
	</body>
</html>