js事件流,dom操作的方法

事件流:
事件流:也就是事件触发的顺序

事件流包括三个阶段:捕获阶段、目标阶段、冒泡阶段

事件冒泡:事件由最具体元素触发,向上传播的过程;

处于目标阶段:触发事件的那个节点,(目标元素);

捕获阶段:事件由不具体的元素向下查找,直到找到你触发的那个元素,与事件冒泡相反;

阻止冒泡: e.stopPropagation();

事件代理(事件委派):在父级上绑定事件,通过e.target来获取触发的目标。

Dom操作的方法
通过:nodeType来检测节点类型,
增删改查:
增:

1.createElement() 创建标签
2.createTextNode() 创建文本
3.createDocumentFragment() 创建文档碎片,所有的操作是在内存中进行的
 //createDocumentFragment():为了避免重绘和回流:咱们插入dom时可采用createDocumentFragment,最后一次性的再添加到页面的dom中
 4.cloneNode(true)  克隆  //添加true代表深度克隆,包括子节点的所有内容也可以克隆过来

例如:
 //需求:创建一个div,并添加文字,追加到页面上
 var odiv=document.createElement('div');
 var otext=document.createTextNode('1906A')

//将文本追加到div上  appendChild
odiv.appendChild(otext);

//再将div追加到body上
document.body.appendChild(odiv)

删、修改:

父节点.appendChild(子节点)  尾追加
父节点.insertBefore(新节点,参考节点) 前追加
父级节点.removeChild(要删除的子级节点) 移除节点
replaceChild(新节点,旧节点)  替换节点

查:

getElementById()  获取id ,如果页面上有多个相同id,只返回第一个
getElementsByTagName() 获取标签名 返回是类数组
getElementsByName()  获取表单中name名称  返回类数组
getElementsByClassName  只能获取class名称  返回类数组
querySelector()  只获取匹配的第一个css选择器  //特别适合移动端
querySelectorAll()  获取匹配的css选择器类数组 //特别适合移动端

parentNode:找父节点
parentElement:找父元素

previousSibling:找前一个兄弟节点
previousElementSibling:找前一个兄弟元素
nextSibling:找后一个兄弟节点
nextElementSibling:找后一个元素节点

childNodes:属性,即包括元素节点,也包括文本节点
children:属性 只获取直接子级元素,不获取文本节点(元素类型===1)
firstNode:找第一个节点
lastNode:找最后一个节点
hasChildNodes:用于判断是否有子元素

设置属性

获取: getAttribute('title')
设置: setAttribute('title','修改的属性')

样式型

window.getComputedStyle:获取css样式

getBoundingClientRect  获取dom的位置信息

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/getComputedStyle
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值