JavaScript基础之DOM修改样式
1.获取或设置元素的内容:3个属性:
1. innerHTML: 获取或设置元素开始标签到结束标签之间的所有HTML代码原文。
何时使用:只要获得完整的html代码原文时
优化:如果批量删除或插入多个子元素时,尽量避免单个操作!
每次插入或删除操作都会导致排版引擎重新layout。
如果批量删除或插入,排版引擎只需要一次layout即可。
如何优化:
1. 删除: parent.innerHTML="";
2. 插入: parent.innerHTML="多个元素的html标签组成的html代码字符串";
2. textContent: 仅获取或设置元素开始标签到结束标签之间的文本内容。不包含标签。如果是特殊符号,会返回特殊符号的正文。
IE8不兼容: innerText
2. ***获取或设置元素的属性:
凡是元素的属性都是字符串!
1. 获取元素的属性:3种:
1. var attrNode=elem.attributes[i/"属性名"]
获得属性节点对象
attrNode.value 获得属性中的值
*2. elem.getAttribute("属性名") 直接返回属性值!
3. elem.getAttributeNode("属性名") 获得属性节点对象
.value才能获得值
2. 设置元素的属性: 3种:——核心DOM
1. elem.attributes[i/"属性名"].value="属性值"
只能修改现有属性
*2. elem.setAttribute("属性名","属性值")
即可新增属性,也可修改现有属性
3. elem.setAttributeNode(属性节点对象)
Elem1.setAttributeNode(elem2.attributes["属性名"])
3. 判断元素中是否包含指定属性:
elem.hasAttribute("属性名")-->包含:true,否则:false
4. 删除元素中的指定属性:
elem.removeAttribute("属性名")
总结:attributes get/set/has/removeAttribute
***属性(Property) vs 特性(Attribute)
属性: 内存中一个对象的成员属性,一般用.访问
特性: 页面中html元素上的html属性,一般用get/setAttribute
对于html标准属性:二者完全相同!
HTML DOM将所有标准属性已经封装在了元素对象中
如果没有主动设置,默认值为""
elem.属性名="值"
自定义特性:只能用核心DOM访问 ——只能访问页面元素中的
html5:elem.dataset保存了所有页面元素中的自定义特性
设置/获取:elem.dataset.属性名
专门访问以data-开头的自定义特性
手动在页面添加自定义特性必须加data-前缀
***修改样式:2处:
1. 仅获取或设置内联样式:
elem.style.属性名="值";
其实elem.style是CSSStyleDeclaration类型的对象
封装了一个元素所有css样式属性的值
固定套路:清除一个元素的所有内联样式:
elem.style.cssText="";
2. 获取元素最终应用的所有样式:计算后的样式
var style=getComputedStyle(elem);
style也是CSSStyleDeclaration类型的对象
IE8:elem.currentStyle;
style.属性名
只要设置:elem.style.属性名 -> 加入内联样式,优先级最高!
不影响其他元素的样式
只要获取:var style=getComputedStyle(elem)
3. 改样式表中的样式:3步:chrome不支持本地的外部css文件
1. 从样式表集合中获取第i个样式表对象
var sheet=document.styleSheets[i]
sheet是CSSStyleSheet类型的对象:
1. sheet.cssRules集合: 样式表中所有cssRule对象
cssRule对象:css中每个{}就是一个cssRule对象
cssRule下还可包含子Rule,比如: @keyframes
2. cssRule对象下,又包含:
1. cssText: 保存Rule完整的字符串
2. selectorText: 选择器名称
*3. style: CSSStyleDeclaration
style.属性名
2. 获取CSSRule对象:
var rule=sheet.cssRules[i]
3. 通过rule获得style对象
var style=rule.style
style.属性名='值';
JavaScript基础之DOM修改样式的更多相关文章
- JavaScript基础:DOM操作详解
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 JavaScript的组成 JavaScript基础分为三个部分: ...
- javascript基础:dom
Dom: * 概念:Document Object Model 文档对象模型 * 将标记语言文档的各个组成部分,封装成对象,可以使用这些对象,对标记语言文档进行CRUD的动态操作 * D ...
- JavaScript基础08——DOM
DOM的概念 DOM是document Object Model的缩写,简称文档对象模型.他给文档提供了一种结构化的表示方式,可以改变文档的内容和呈现方式 所谓的DOM是以家族的形式描述HTML.父子 ...
- JavaScript基础 -- 常见DOM树操作
1.创建并增加元素节点 <ul id="ul"> <li>1</li> <li>2</li> <li>3&l ...
- JavaScript 基础知识 - BOM篇
前言 本篇文章是JavaScript基础知识的BOM篇,如果前面的<JavaScript基础知识-DOM篇>看完了,现在就可以学习BOM了. 注意: 所有的案例都在这里链接: 提取密码密码 ...
- javascript基础系列(入门前须知)
-----------------------小历史---------------------------- javascript与java是两种语言,他们的创作公司不同,JavaScript当时是借 ...
- JavaScript DOM高级程序设计 5动态修改样式和层叠样式表2--我要坚持到底!
把样式置于DOM脚本之外 style属性 我们可以这样设置前景色之类的属性: element.style.color='red'; 也可以使用下面的代码设置背景颜色: element.style.ba ...
- 第一百一十六节,JavaScript,DOM操作样式
JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检 ...
- JavaScript基础(2)-DOM
一.伪数组arguments arguments代表的是实参,有个讲究的地方是:arguments只在函数中使用. 1.返回函数实参的个数:arguments.length,例如: fn(2,4); ...
随机推荐
- python json操作
来源 http://www.cnblogs.com/qq78292959/p/3467937.html 什么是json: JSON(JavaScript Object Notation) 是一种轻量级 ...
- ImageLoader图片加载
http://blog.csdn.net/liu1164316159/article/details/38728259 转载请注明http://write.blog.csdn.net/po ...
- HANA SQLScript
数据类型 日期时间类型 DATE(日期) DATE 数据类型由年.月.日信息组成,表示一个日期值. DATA 类型的默认格式为‘YYYY-MM-DD’. YYYY 表示年, MM 表示月而 DD 表示 ...
- 如何为数据源向导填加一种自定义的数据源类型(win示例)
https://www.devexpress.com/Support/Center/Example/Details/T310160
- cocos2dx解决苹果正版ipv6的问题
苹果官方出了新的规定,要求新上架的app都必须单独支持ipv6-only的网络. 具体的要求链接:https://developer.apple.com/library/mac/documentati ...
- bate阶段项目总结
Beta里程碑总结 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 要解决的问题是如何实现消息的发布与查看以及个人主页的实现:定义的基本清楚,团队 ...
- 2014最后一天,好烦!这个问题从来没遇到过!网上查找了很多办法都没解决!并且no wifi 了!
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was alread ...
- 01.JavaScript 面向对象精要--原始类型和引用类型
一.什么是类型 JavaScript 虽然没有类的概念.但依然存在两种类型:原始类型和应用类型. 原始类型保存为简单的数据值,引用类型则保存为对象,其本质是指向内存位置 的引用.也就是说:原始值被直接 ...
- Apache 403 error, (13)Permission denied: access to / denied问题
Apache 配置Alias 后,无法访问 CentOS系统 检查了一圈httpd.conf和目录权限,均没有发现问题. 最后,看了这篇文章,发现是因为系统启动了SELINUX导致的. http:// ...
- DPDK编译步骤
大页内存分配: NUMA系统(现在的linux一般都是) echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048 ...