JS常用和DOM

1、常见弹窗函数

1.1警告框

就是展示一下,没有其他操作

alert("小伙子没有权限!"); 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1hrynKZ7-1661428560493)(D:\千峰上课\Every Day Stage2\day33\code\day33-js.assets\image-20220825094854746.png)]

1.2确认框

框内有两个选项,可自定义接下来的操作

点确定返回true,取消返回false

confirm("是否真的删除!")

1.2.1确认框的使用

可以用if嵌套使用

// 确认框,点击确定返回true,点击取消返回false
var result = confirm("是否真的删除?!");
console.log("是否真的删除?!"+result)
if(confirm("是否真的删除?!")) {
    
    
    // 发请求,调用java代码,执行操作,删除数据
    console.log("删除成功")
} else{
    
    
    console.log("取消删除")
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2mNNK0f0-1661428560494)(D:\千峰上课\Every Day Stage2\day33\code\day33-js.assets\image-20220825094940561.png)]

1.3对话框

可以输入语句的框

返回值是输入的值

prompt("请输入密码,确定删除!");

1.3.1对话框的使用

可以使用if进行嵌套判断输入的值

// 对话框,会返回输入的值
var val = prompt("请输入密码,确定删除!");
if(val == "123456") {
    
    
    console.log("删除成功")
}else{
    
    
    console.log("密码错误!")
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0zMlRe4A-1661428560495)(D:\千峰上课\Every Day Stage2\day33\code\day33-js.assets\image-20220825095057646.png)]

2、事件

是一种形容,形容浏览器上因为我们的某些操作发生的变化

2.1事件的写法

事件名称 描述
onchange HTML 元素内容改变
onblur 输入框失去焦点
onfocus 输入框获得焦点
onclick 用户点击 HTML 元素
ondblclick 用户双击HTML元素
onmouseover 用户将鼠标移入一个HTML元素中
onmousemove 用户在一个HTML元素上移动鼠标
onmouseout 用户从一个HTML元素上移开鼠标
onkeyup 键盘弹起
onkeydown 用户按下键盘按键
onkeypress 按压键盘
onload 浏览器已完成页面的加载
onsubmit 表单提交

2.2绑定事件的过程

1、事件源

就是变化发生在哪里,也就是具体的某个标签

2、什么事件

比如(onblur失去焦点)(onclick鼠标点击)都是事件

3、响应

就是事件发生后,程序所给出的反应,比如

绑定操作1:

事件源,事件,响应全写到标签里,不用写函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qsoyZV2l-1661428560495)(D:\千峰上课\Every Day Stage2\day33\code\day33-js.assets\xxxxxxx.png)]

绑定方式2:

事件源和事件在标签内,响应拿到JS中形成独立的函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3CNLpr4-1661428560495)(D:\千峰上课\Every Day Stage2\day33\code\day33-js.assets\image-20220825103311305.png)]

绑定方式3:

事件源、事件、响应全部脱离

给事件源(标签)定义id,在JS中获取它的id(document.getElementById),最后给这个id定义函数(方法)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zJtOWctc-1661428560496)(D:\千峰上课\Every Day Stage2\day33\code\day33-js.assets\image-20220825103744276.png)]

2.3事件演示

2.3.1鼠标事件ondblclick(鼠标双击)

<button ondblclick="alert('双击')">双击有效!</button>
//双击鼠标的演示
<hr>
//鼠标进入元素
<div id="d1" style="width: 300px;height: 300px;border: 5px solid red;"></div>

<script type="text/javascript">

    var div1 = document.getElementById("d1");
    var a = 0;
    // 鼠标进入某个元素
    div1.onmouseover = function(){
      
      
        console.log(++a);
    }
    div1.onmouseleave = function(){
      
      
        console.log(--a);
    }
    // 鼠标移动
    div1.onmousemove = function(){
      
      
        // console.log(++a);
    }

</script>

2.3.2键盘事件

    <script type="text/javascript">

        var i1 = document.getElementById("i1");
var a = 0;
var b = 0;
var c = 0;
i1.onkeydown = function(){
      
      
    console.log("按下: " + (++a))
}
i1.onkeyup = function(){
      
      
    console.log("弹起: " + (++b))
}
i1.onkeypress = function(){
      
      
    console.log("按压: " + (++c))
}
</script>

2.3.3表单事件【重点】**

主要是失去焦点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			input,select {
      
      
				width:500px;
				height:35px;
				font-size: 29px;
			}
		</style>
        
        
	</head>
	<body>
		<form action="/java2212" onsubmit="return mySubmit()">
			
			用户名<input id="i1" type="text"/><br />
			密码<input id="i2" type="password"/><br />
			地址<select id="s1">
				<option>德玛西亚</option>
				<option>诺克萨斯</option>
			</select><br>
			
			<input id="i3" type="submit" value="提交"/>
			
		</form>
		
		<script type="text/javascript">
			var i1 = document.getElementById("i1");
			// 获得焦点,一般用在注册时用于提示格式
			i1.onfocus = function() {
      
      
				console.log("获得焦点: 用户名6-8位");
			}
			
			// 失去焦点.一般用在表单中,校验数据
			i1.onblur = function() {
      
      
				console.log("失去焦点: 两次密码不一致");
			}
			
			// 内容改变事件
			var s1 = document.getElementById("s1");
			s1.onchange = function(){
      
      
				console.log("select内容改变")
			}
			
			// 提交事件.
			// 1 需要将事件绑定在form标签上
			// 2 调用函数前需要加return
			// 3 函数内需要定义返回值,返回true就提交表单,返回false就阻止表单提交
			function mySubmit() {
      
      
				/**
				 * 场景: 做表单提交前的校验
				 */
				
				console.log("提交啦");
				// 返回true才能提交
				return true;
				// 返回false不提交
				//return false;
			}
		</script>
		
	</body>
</html>

2.3.4加载事件【重点】

就是一个声明符window.onload

作用是window.οnlοad=function的方法,是在页面加载完毕后,才运行的

BUG:必须把script(JS)引用放在html中的最后边,这样才能防止JS找不到定义的标签的位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZkkdjqO-1661428560496)(D:\千峰上课\Every Day Stage2\day33\code\day33-js.assets\image-20220825113511837.png)]

正常的

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 页面加载事件,等页面加载完再调用
			window.onload = function(){
      
      
				var btn = document.getElementById("btn");
				btn.onclick = function() {
      
      
					alert("点我了?")
				}
			}
		</script>
	</head>
	<body>
		
    <button id="btn">点我!!</button>
		
	</body>
</html>

3、DOM操作

是一种思想,是操作的统称

这种操作就是查找、创建、删除

Document Object Model 文档对象模型,将HTML网页称作文档,将文档中的标签形成树形结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8rjw6b0Y-1661428560496)(D:\千峰上课\Every Day Stage2\day33\code\day33-js.assets\image-20220825143630136.png)]

操作DOM,就是对DOM树操作,可以找到某个或者某些元素

修改元素的属性内容以及样式,创建新的节点,删除节点

3.1通过id查找元素

关键词document.getElementById(“获取的ID名”)

<button id="btn1">点击</button>
var e = document.getElementById("id");

3.2查找

3.2.1通过标签名查找元素

关键词document.getElementsByTagName(“获取的标签类型”)

但获取的是 数组!!!

<p>唧唧复唧唧,木兰当户织</p>
<p>不闻机杼声,惟闻女叹息</p>
<p>问女何所思,问女何所忆</p>

// 通过标签名,获得同名所有元素对象,返回是数组
var ps = document.getElementsByTagName("p");
console.log(ps)
// 遍历数组,获得每个对象
for(var i = 0;i < ps.length;i++) {
    
    
    console.log(ps[i])
}

3.2.2通过类名查找元素(通过定义class)

关键词document.getElementsByClassName(“class的值”)

获取的也是 数组!!!

<p class="p1">唧唧复唧唧,木兰当户织</p>
<p class="p1">不闻机杼声,惟闻女叹息</p>
<p>问女何所思,问女何所忆</p>

// 通过标签的class值,获得元素,返回数组
var ps2 = document.getElementsByClassName("p1")
console.log(ps2)
for(var i = 0;i < ps2.length;i++) {
    
    
	console.log(ps2[i])
}

3.2.3获取后设置元素的内容【重点】

关键词:没有关键词,直接"="赋值即可

注意如果是数组需要用for循环进行赋值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<p><span>噫吁嚱,危乎高哉!</span></p>
		<p><span>蜀道之难,难于上青天!</span></p>
		<p><span>蚕丛及鱼凫,开国何茫然!</span></p>
		
		<button onclick="changeHTML()"> 修改文本内容HTML</button>
		<button onclick="changeText()"> 修改文本内容Text</button>
		
		<script type="text/javascript">
			var parr = document.getElementsByTagName("p");
			for(var i = 0;i < parr.length;i++) {
      
      
				// 获得标签内部内容,获得内部的内容,包括标签
				console.log(parr[i].innerHTML);
			}
			console.log("------------------")	
			for(var i = 0;i < parr.length;i++) {
      
      
				// 获得标签内部内容,只能获得文本内容
				console.log(parr[i].innerText);
			}
			function changeHTML(){
      
      
				for(var i = 0;i < parr.length;i++) {
      
      
					// 设置内部内容,如果有标签,会解析标签
					parr[i].innerHTML = "<span>好好学习</span>";
				}
			}
			function changeText(){
      
      
				for(var i = 0;i < parr.length;i++) {
      
      
					// 设置内部内容,如果有标签,不解析,就当做文本内容直接展示
					parr[i].innerText = "<span>天天向上</span>";
				}
			}
		</script>
	</body>
</html>

3.3查找和设置元素属性【重点】

获取标签的元素属性和值,直接用id名称或class名称直接.元素,或者.value。可以获取标签的所有内容

直接.元素或属性,加等号和值直接修改属性值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
		<input id="i1" type="text" value="admin"/>
		<button onclick="getAttributeValue()">点击获得属性值</button>
		<button onclick="setAttributeValue()">点击设置属性值-李白</button>
		
		<script type="text/javascript">
			function getAttributeValue() {
      
      
				var i1 = document.getElementById("i1");
				// 元素对象.属性名; 获得属性值
				console.log(i1.id);
				console.log(i1.type);
				console.log(i1.value);// 重要!!!
			}
			
			function setAttributeValue() {
      
      
				var i1 = document.getElementById("i1");
				i1.value = "李白"; // 重要!!!将来更新数据时,给输入框回显数据
				i1.type = "password";
			}
		</script>
	</body>
</html>

3.4查找和设置元素CSS样式

直接.style.width,获取宽,加等号直接修改!!!

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="d1" style="background-color: red;width: 300px;height: 300px;">xxxx</div>
		<button onclick="getCSSAttribute()">点击获得css属性</button>
		
		<button onclick="setCSSAttribute()">设置css属性</button>
		
		<script type="text/javascript">
			function getCSSAttribute() {
      
      
				var d1 = document.getElementById("d1");
				// 获得css属性,需要 
				// 对象.style.属性
				// 如果属性名有-,将-去掉,后字母大写即可
				var s = d1.style.backgroundColor;
				var width = d1.style.width;
				var height = d1.style.height;
				console.log(s)
				console.log(width)
				console.log(height)
			}
			
			function setCSSAttribute() {
      
      
				var d1 = document.getElementById("d1");
				d1.style.backgroundColor = "green";
				d1.style.width = "100px"
				d1.style.height = "100px"
			}
		</script>
	</body>
</html>

// 获得css属性,需要
// 对象.style.属性
// 如果属性名有-,将-去掉,后字母大写即可
var s = d1.style.backgroundColor;
var width = d1.style.width;
var height = d1.style.height;
console.log(s)
console.log(width)
console.log(height)
}

		function setCSSAttribute() {
			var d1 = document.getElementById("d1");
			d1.style.backgroundColor = "green";
			d1.style.width = "100px"
			d1.style.height = "100px"
		}
	</script>
</body>
```

猜你喜欢

转载自blog.csdn.net/m0_73050509/article/details/126531552