JavaScript高阶(属性操作|样式操作|事件)

一、JavaScript获取用户输入

		我们详细看一下JS后面获取用户输入的信息原理
			普通数据(输入、选择) 标签对象.value
			文件数据(上传)标签对象.files	拿文件对象.file[0]

			<!DOCTYPE html>
			<html>
				<head>
					<meta charset="utf-8">
					<title></title>
				</head>
				<body>		
					<input type="text" name="" id="d1">			# 普通文本
					<input type="password" name="" id="d2">		# 密码文本
					<input type="radio" name="" id="d3"># 单选按钮
					<input type="radio" name="" id="d4"><select name="" id="d5">					# 下拉框
						<option value="111">111</option>
						<option value="223">222</option>
						<option value="333">333</option>
					</select>
					<input type="file" name="" id="d6">			# 文件获取
				</body>
			</html>

在这里插入图片描述

二、JavaScript类属性操作

		标签对象.classList				获取当前标签所有的值
		标签对象.classList.contains() 	判断当前标签是否存在 存在返回true 否则返回false
		标签对象.classList.add()			添加类属性
		标签对象.classList.remove()	删除类属性
		标签对象.classList.toggle()		类存在就删除,否则添加
			<!DOCTYPE html>
			<html>
				<head>
					<meta charset="utf-8">
					<title></title>
					<style>
						.c1 {width: 400px; height: 400px; border-radius:50%; border: 3px solid black;}
						.c2 {background-color: aquamarine;}
						.c3 {background-color: aqua;}
					</style>
				</head>
				<body>
					<div class="c1 c2 c3"></div>
				</body>
			</html>

在这里插入图片描述

三、JavaScript样式操作

		标签对象.style.标签样式属性名
			backgroundColor
		 	backgroundImage
		 	backgroundPosition
		   ...
			<!DOCTYPE html>
			<html>
				<head>
					<meta charset="utf-8">
					<title></title>
					<style>
						p{background-color: ;
						  background-image: ;
						  background-position: ;
						}
					</style>
				</head>
				<body>
					<p>我高攀不起你昂贵的怀念</p>
				</body>
			</html>

在这里插入图片描述

四、事件

		HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action)
		比如当用户点击某个HTML元素时启动一段 JavaScript 下面是一个属性列表 这些属性可插入 HTML 标签来定义事件动作 
		事件可以简单的理解为是给html标签绑定了一些额外的功能(能够触发js代码的运行)
语法说明
onclick当用户点击某个对象时调用的事件句柄
ondblclick当用户双击某个对象时调用的事件句柄
onfocus元素获得焦点
onblur元素失去焦点 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证
onchange域的内容被改变 应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动)
onkeydown某个键盘按键被按下 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.
onkeypress某个键盘按键被按下并松开
onkeyup某个键盘按键被松开
onload一张页面或一幅图像完成加载
onmousedown鼠标按钮被按下
onmousemove鼠标被移动
onmouseout鼠标从某元素移开
onmouseover鼠标移到某元素之上
onselect在文本框中的文本被选中时发生
onsubmit确认按钮被点击,使用的对象是form

		绑定事件的两种方式:
			绑定方式1: 提现写好函数 标签内部指定点击的时候运行
				<input type="button" value="点我" onclick="func1()">
				<script>
					function func1(){
						alert('我说点点我就点我啊?')}	
				</script>
				
			绑定方式2: 先查询到标签 然后绑定使用 可以批量绑定
				<button id="d1">点一点</button>
				<script>
					let butEle = document.getElementById('d1')
					butEle.onclick = function(){alert('你个傻儿 你又点!')}
				</script>
				

在这里插入图片描述


		事件中的关键字this
			<!DOCTYPE html>
			<html>
				<head>
					<meta charset="utf-8">
					<title></title>
				</head>
				<body>
					<button id="d1">点一点</button>
					<script>
						let butEle = document.getElementById('d1')
						butEle.onclick = function(){alert('你个傻儿 你又点!')
						console.log(this)}	# 在此打印 this 是什么?
					</script>
				</body>
			</html>

		'''this指代的是当前被操作的标签对象'''

在这里插入图片描述

			等待文档加载完毕之后再执行一些代码
			
			<!DOCTYPE html>
			<html>
				<head>
					<meta charset="utf-8">
					<title></title>
					<style>
						window.onload = function () {
					        页面js代码    	# 这里专门写 文档加载完毕之后的代码
					    }
					</style>
				</head>
				<body>
				
				</body>
			</html>

五、JavaScript事件案例

		校验用户账号密码输入(点击事件 oncilick)
		
		<!DOCTYPE html>
		<html lang="en">
		<head>
		    <meta charset="UTF-8">
		    <title>Title</title>
		</head>
		<body>
		<p>
		    账号:<input type="text" id="username">
		    <span class="errors" style="color: red"></span>
		</p>
		
		<p>
		    密码:<input type="text" id="password">
		    <span class="errors" style="color: red"></span>
		</p>
		    <button id="btn">提交</button>
		
		<script>
		    // 1.查找按钮标签
		    let btnEle = document.getElementById('btn');		# 拿到提交按钮的ID
		    // 2.绑定单击事件	
		    btnEle.onclick = function () {						# 当用户点击提交获取用户输入的信息
		        // 3.获取用户输入的用户名和密码
		        let userNameVal = document.getElementById('username').value;	# 获取账号
		        let passWordVal = document.getElementById('password').value;	# 获取密码
		        // 4.判断用户名和密码是否合法
		        if(userNameVal === 'LebronJames'){						# 如果账号等于LebronJames
		            // 4.1.查找获取用户名的input框下面的span标签
		            let span1Ele = document.getElementsByClassName('errors')[0];		# 拿到Div下面的span标签
		            // 4.2.给span标签添加内部文本
		            span1Ele.innerText = '你以为你是LebronJames?'}		# 给span标签添加内容不能是LebronJames
		        // 5.判断密码是否为空
		        if(passWordVal.length === 0){							# 密码输入不能为空 length获取标签长度
		            // 5.1.查找获取用户名的input框下面的span标签
		            let span1Ele = document.getElementsByClassName('errors')[1];	# 拿到Div下面的span标签
		            // 5.2.给span标签添加内部文本
		            span1Ele.innerText = '密码栏不能为空!!!'}			# 如果为空则报错
		    }
		</script>
		</body>
		</html>
			

在这里插入图片描述

			下拉选择框联动事件
			
			<!DOCTYPE html>
			<html lang="en">
			<head>
			    <meta charset="UTF-8">
			    <title>省市联动</title>
			</head>
			<body>
			省份:<select name="" id="province"></select>
			市区:<select name="" id="city"></select>
				<script>
				    let data = {
				        "北京": ["朝阳区", "海淀区"],
				        "山东": ["威海市", "烟台市","青岛市"],
				        "安徽": ["芜湖市", "合肥市","南通市"],
				        "上海": ["浦东新区", "青浦区","静安区"],
				        "深圳": ["南山区","宝安区", "龙华区"]
				    };
				    // 提前找好select标签
				    let proEle = document.getElementById('province');
				    let cityEle = document.getElementById('city');
				
				    // 1.循环获取所有的省信息
				    for(let pro in data){
				        // 2.创建option标签
				        let opEle = document.createElement('option');  // <option></option>
				        // 3.添加内部文本
				        opEle.innerText = pro  // <option>省份信息</option>
				        // 4.添加value属性
				        opEle.setAttribute('value',pro)  // <option value='省份信息'>省份信息</option>
				        // 5.将上述的option标签添加到第一个select标签内
				        proEle.append(opEle)
				    }
				
				    // 给省份的下拉框绑定文本域变化事件
				    proEle.onchange = function () {
				        // 每次给市区下拉框添加市区信息之前 应该先清空上一次加载的数据
				        cityEle.innerHTML = '';
				        // 1.获取用户选择的省份信息
				        let currentPro = this.value;
				        // 2.根据省份获取对应的市区列表数据
				        let targetCityList = data[currentPro];
				        // 3.循环获取所有的市信息
				        for(let i=0;i<targetCityList.length;i++){
				            // 4.创建option标签
				            let opEle = document.createElement('option');  // <option></option>
				            // 5.添加内部文本
				            opEle.innerText = targetCityList[i]
				            // 6.添加value属性
				            opEle.setAttribute('value',targetCityList[i])
				            // 7.添加到第二个select标签内
				            cityEle.append(opEle)
				        }
				    }
				</script>
			</body>
			</html>
				

在这里插入图片描述

技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点点赞收藏+关注 谢谢支持 !!!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoisMay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值