冒泡监听、节点、cookie

一、事件的冒泡监听

1 事件的冒泡(Bubble)

  • 所谓的冒泡指的就是事件的向上传导,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发
  • 在开发中大部分情况冒泡都是有用的,如果不希望发生事件冒泡可以通过事件对象来取消冒泡
  • e.cancelBubble=true;e.stopPropagation(); 都可取消冒泡。
<script type="text/javascript">
		window.onload=()=>{
			let d=document.getElementById('d');
			d.onclick=()=>console.log('I am pink')
			let p = document.getElementById('p')
			p.onclick=(e)=>{
			    console.log('I am blue')
				e.cancelBubble=true;
				// e.stopPropagation();
			}
		}
	</script>
	<body>
		<div id="d">
			<p id="p"></p>
		</div>
	</body>

在这里插入图片描述

2 事件的监听–addEventListener() 方法

  1. addEventListener() 方法为指定元素指定事件处理程序。
  2. addEventListener()方法为元素附加事件处理程序而不会覆盖已有的事件处理程序。
  • 一个元素可添加多个事件处理程序。

  • 一个元素可添加多个相同类型的事件处理程序,例如两个 “click” 事件。

  • 可向任何 DOM 对象添加事件处理程序而非仅仅 HTML 元素,例如 window 对象。

  1. addEventListener() 方法使我们更容易控制事件如何对冒泡作出反应。

  2. 当使用 addEventListener() 方法时,JavaScript 与 HTML 标记是分隔的,已达到更佳的可读性;即使在不控制 HTML 标记时也允许您添加事件监听器。

  3. 使用removeEventListener() 方法轻松地删除事件监听器。

语法:
element.addEventListener(event, function, useCapture);

第三个参数是布尔值,指定使用事件冒泡还是事件捕获。此参数可选。

 window.onload=()=>{
        let btn=document.getElementById("btn");
        btn.addEventListener("click",function(){
            alert("Dont't click me")
        })
        btn.addEventListener("click",function(){
            alert("hhhhhhhhhhh")
        })
    }
</script>
<body>
    <button id="btn">点我呀</button>
</body>

在这里插入图片描述
在这里插入图片描述

3 阻止默认行为

语法:

e.preventDefault();

实例:

window.onload=()=>{
		    let a =document.getElementById('a')
			a.onclick=(e)=>{
				alert('点击了超链接');
				e.preventDefault();
			}
		}
<a href="01事件的冒泡.html" id="a">01事件的冒泡</a>

在这里插入图片描述

二、DOM元素(节点)

1 节点属性

nodeName 节点名字,返回字符串
nodeValue 节点当前值
nodeType 节点类型,返回的是一个整体:元素、文本、属性、注释、文档

2 添加和删除节点

  • 创建新元素:appendChild() insertBefore()
<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>
<script>
var para = document.createElement("p");
var node = document.createTextNode("这是新文本。");
para.appendChild(node);

var element = document.getElementById("div1");
var child = document.getElementById("p1");
element.insertBefore(para, child);
</script>
  • 删除已有元素(从父删除子):removeChild()

child.parentNode.removeChild(child);

  • 替换元素:replaceChild()

parent.replaceChild(para, child);

3 遍历节点树的方法

Childnodes:返回一个数组,这个数组由給定元素节点的子节点构成。
Fristchcild:返回第一个子节点
Lastchild:它返回最后一个子节点
Parentnode:它返回一个给定节点的父节点
Nextsibling:它返回给定节点的下一个节点
Previousibling:它返回給节点的上一个节点

三、什么是cookie?

  1. Cookie 是在您的计算机上存储在小的文本文件中的数据。

  2. 当 web 服务器向浏览器发送网页后,连接被关闭,服务器会忘记用户的一切。

  3. Cookie 是为了解决“如何记住用户信息”而发明的:

  • 当用户访问网页时,他的名字可以存储在 cookie 中。
  • 下次用户访问该页面时,cookie 会“记住”他的名字。
  1. 当浏览器从服务器请求一个网页时,将属于该页的 cookie 添加到该请求中。这样服务器就获得了必要的数据来“记住”用户的信息
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值