| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Web前端开发工程师知识体系_29_JavaScript DOM(三) -> 正文阅读 |
|
[JavaScript知识库]Web前端开发工程师知识体系_29_JavaScript DOM(三) |
一个元素可以修改它的内容、属性和样式。 一、修改 1.修改属性 (1)字符串类型的HTML标准属性(上篇) (2)bool类型的HTML标准属性(上篇) (3)自定义扩展属性 ????????HTML标准中没有规定,程序员根据自身的需要自发添加的属性就是自定义属性。 a:自定义属性经常用于代替id、class或元素选择器,作为查找触发事件的元素的条件;CSS的各种选择器均有自己的不足之处: ?????????i. id选择器,只能选1个; ????????ii. class选择器,本职工作是定义样式,而样式的修改极其频繁!如果用class选择器查找元素绑定事件,一旦样式类发生变化,程序必然出错; ????????iii. 元素选择器,因为实现同一种效果,可选的标签名优很多,没有统一规定。如果用元素选择器查找触发事件的元素,绑定事件,则元素一改,功能又立刻出错。 ? ? ? ? 为了解决以上问题,就可以为元素添加自定义属性,当查找触发事件的元素时,用属性选择器[自定义属性]来查找即可。 b:在js中访问自定义扩展属性 ????????要注意自定义属性不能用?.?访问,因为自定义属性是后天程序员自发添加的,在HTML标准中没有规定。所有在内存中的元素对象上,不包含自定义扩展属性! ????????可以用旧核心DOM:
????????在新版的HTML5标准中,有新的规定: ????????①HTML中,所有自定义属性名必须以data-开头:<元素 ??data-自定义属性名="属性值"> ????????②如果在html中以data-开头了,则js中: 元素.dataset.自定义属性名。 举例:点击按钮,记录次数;
2.修改样式 (1)修改内联样式
由于有些css属性名中带-,这样会和减法的-号冲突;所以所有带-的css属性名必须去-变驼峰,比如:font-size ->? fontSize、background-color -> backgroundColor、list-style-type -> listStyeType。 (2)获取样式 ????????使用元素.style.css属性的方式,只能获取内联样式,无法获得内部或外部样式表中层叠或继承来的css属性值。所以今后要想获得元素任意css属性值,都要获得计算后的样式。计算后的样式就是最终应用到一个元素上的所有css属性的总和。 ? ? ? ? 获取方法分为两步:
举例:获取h1元素计算后的样式;
? ? ? ? 在实际的项目中,很多效果都需要批量修改一个元素的多个css属性,而.style一句话只能修改一个css属性,如果修改多个css属性时代码会很繁琐;所以只要批量设置一个元素的多个css属性,都用class代替.style。 二、添加/删除元素 1.添加一个新元素 (1)创建一个新的空元素对象:
(2)为新元素添加必要属性:
?(3)将新元素添加到DOM树的指定父元素下:
?举例:创建一个a元素和一个文本框;
2.优化 ????????修改DOM树的内容会导致重排重绘,但频繁重排重绘会降低页面加载的效率,如果父元素已经在页面上了,要添加多个平级子元素,就要借助于文档片段对象来实现。 ? ? ? ? 文档片段是指内存中临时保存多个平级子元素的虚拟父元素,使用方法: (1)先创建文档片段对象:
(2)将子元素先添加到文档片段对象中
(3)将文档片段对象一次性添加到页面上
3.删除元素
举例:动态生成表格;
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 13:52:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |