初探Javascript之DOM
DOM对象(文档对象模型)
HTML DOM 是 W3C 标准(是 HTML 文档对象模型的英文缩写,Document Object Model for HTML)。HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法。通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。
方法
2.1 document.getElementById("elementID");
定义和用法:
- 返回对拥有指定 ID 的第一个对象的引用
- 如果没有指定 ID 的元素返回 null
2.2 document.getElementsByTagName("tagname");
定义和用法:
- 返回带有指定标签名的对象的集合
- 参数值 "*" 返回文档的所有元素
- 返回的集合对象拥有 length 属性,并且可以通过 Index 来访问集合中的元素
2.3 document.getElementsByName("name");
定义和用法:
- 返回带有指定名称的对象的集合
- 返回的集合对象拥有 length 属性,并且可以通过 Index 来访问集合中的元素
- 存在兼容性问题(该方法适用于表单操作)
>IE 浏览器中,如果name存在于form表单中,可以正常使用,但是如果出现在例如div元素中,则不能正常返回值,原因是name并不是div的标准属性
>CHROM, FIREFOX 均正常
2.4 document.getElementsByClassName("classname");
定义和用法:
- 返回文档中所有指定类名的元素集合
- 返回的集合对象拥有 length 属性,并且可以通过 Index 来访问集合中的元素
- 存在兼容性问题(FF,CHROM 支持该方法,IE不支持)
解决办法:
```
function getElesByClassName(className) {
var arr = [];
if(document.getElementsByClassName) {
return document.getElementsByClassName(className);
} else {
var tags = document.getElementsByTagName("*");
for(var i = 0; i < tags.length; i++) {
if(tags[i].className == className) {
arr.push(tags[i]);
}
}
return arr;
}
}
3. 对象集合
3.1 all
所有对象的集合,常用来做兼容性判断
3.2 forms
所有form表单集合
console.log(document.forms.length);
通过 index 来访问表单对象
document.forms[0];
通过表单的 name 属性来访问表单对象
document.forms["name"];
4. 操作元素内容
4.1 innerHTML: 设置或获取标签对中的内容( 识别HTML )
4.2 innerText: 获取文字内容( IE ) textContent: 获取文字内容(FF,chrom)
function getContent(obj, val) {
if(document.all) {
if(val) {
obj.innerText = val;
} else {
return obj.innerText;
}
} else {
if(val) {
obj.textContent = val;
} else {
return obj.textContent;
}
}
}
5. 属性操作
5.1 直接操作
object.attr = value ( 获取和设置 )
5.2 方法
获取: object.getAttribute("attr")
设置: 对象.setAttribute("attr", "value")
6. 样式操作
6.1 行内样式
设置和获取: object.style.attr 示例: hover
html:
<a id="one" href="#" style="color: red; padding: 3px;">跳转</a>
javascript:
(function() {
var one = document.getElementById("one");
one.onmouseover = function() {
this.style.color = "blue";
this.style.backgroundColor = "red";
};
one.onmouseout = function() {
this.style.color = "red";
this.style.backgroundColor = "blue";
};
}());
6.2 css层叠样式
通过 className 修改样式
获取或修改某个属性的值(兼容性问题)
<table style='width:800px;font-size:14px;text-align:center;'><tr><th>属性</th><th>描述</th></tr><tr><td>document.styleSheets</td><td>返回样式表的集合</td></tr><tr><td>document.styleSheets[index].rules / document.styleSheets[index].cssRules</td><td>返回样式表中选择器的集合</td></tr><tr><td>document.styleSheets[index].rules[index].style.attr</td><td>查找样式表中的样式属性(**ie chrom**)</td></tr><tr><td>document.styleSheets[index].cssRules[index].style.attr</td><td>查找样式表中的样式属性(**firefox**)</td></table>
动态添加或删除
document.styleSheets[index].insertRule("selector{attr:value}", index);
document.styleSheets[index].deleteRule(index);
document.styleSheets[index].addRule("selector","attr:value", index);
document.styleSheets[index].removeRule(index);
6.3 获取最终样式(只能获取,不能操作)
object.currentStyle.attr ( IE )
window.getComputedStyle(object,null).attr ( W3C )
6.4 获得元素尺寸(可直接运算)
clientWidth/clientHeight: 元素可视部分的高度和宽度(width + padding)
offsetWidth/offsetHeight: 元素实际的高度和宽度(width+padding+border)
初探Javascript之DOM的更多相关文章
- 初探JavaScript(四)——作用域链和声明提前
前言:最近恰逢毕业季,千千万万的学生党开始步入社会,告别象牙塔似的学校生活.往往在人生的各个拐点的时候,情感丰富,感触颇深,各种对过去的美好的总结,对未来的展望.与此同时,也让诸多的老“园”工看完这些 ...
- 初探JavaScript(三)——JS带我"碰壁"带我飞
已经写了两篇关于小白的JavaScript之行,不可否认,每一种语言都有其精华与糟粕之处,来不及细细体味其精华奥妙,也没法对其评头论足,只能先了解,后深入.到目前为止已经看完<JavaScrip ...
- 初探JavaScript(二)——JS如何动态操控HTML
除去五一三天,我已经和<JavaScript Dom编程艺术>磨合了六天,第一印象很好.慢慢的,我发现这是一块排骨,除了肉还有骨头.遇到不解的地方就会多看几遍,实在不懂的先跳过,毕竟,初次 ...
- 初探JavaScript(一)——也谈元素节点、属性节点、文本节点
Javascript大行其道的时候,怎么能少了我来凑凑热闹^_^ 基本上自己对于js的知识储备很少,先前有用过JQuery实现一些简单功能,要论起JS的前世今生,来龙去脉,我就一小白.抱起一本< ...
- javascript --- javascript与DOM
javascript与DOM: 我们来个例子,一个HTML里包含一段文本和一个无序的列表. <p id="intro">My first paragraph...< ...
- JavaScript与DOM
文档对象模型Document Object Model DOM(Document Object Model,文档对象模型)是一个通过和JavaScript进行内容交互的API.Javascript和D ...
- Javascript中DOM技术的的简单学习
第十四课DOM技术概述1:DOM概述 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节 ...
- JavaScript与DOM的关系
JavaScript与浏览器的工作 1.浏览器获取并加载你的页面,从上至下解析它的内容. 遇到JavaScript时,浏览器会解析代码,检查它的正确性,然后执行代码. 浏览器还会建立一个HTML页面的 ...
- JavaScript网站设计实践(四)编写about.html页面,利用JavaScript和DOM,选择性的显示和隐藏DIV元素
一.现在我们在网站设计(三)的基础上,来编写about.html页面. 这个页面要用到的知识点是利用JavaScript和DOM实现选择性地显示和隐藏某些DIV about.html页面在前面我们为了 ...
随机推荐
- 设计模式 --> (10)享元模式
享元模式 运用共享技术有效地支持大量细粒度的对象. 享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State). 内蕴状态是存储在享元对象内部并且 ...
- [mysql] MySQL解压缩安装步骤
以前装的MySQL出问题了,只好卸载了. 又下载了一个mysql-5.6.24-win32.1432006610.zip.msi文件直接安装就行了.这里需要解压到指定目录,配置后可使用. 环境变量配置 ...
- Java基础学习笔记十九 IO
File IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再 ...
- JavaEE GenericServlet 解析
从 上一篇 文章中可以看到,直接实现 Servlet 接口需要实现其所有方法,而这通常不是好的做法.相反,一种相对较好的做法是给出一个实现类来默认实现其所有方法或者部分方法,并开放给子类.而子类再在此 ...
- 关于hadoop集群下Datanode和Namenode无法访问的解决方案
HDFS架构 HDFS也是按照Master和Slave的结构,分namenode,secondarynamenode,datanode这几个角色. Namenode:是maseter节点,是大领导.管 ...
- 高级软件工程2017第6次作业——团队项目:Alpha阶段综合报告
1.版本测试报告 1.1在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? Bug分类 Bug内容 Fixed 编辑博文时改变文字格式会刷新界面 Can't reproduced 无 N ...
- Beta冲刺置顶随笔
项目名称:城市安全风险管控系统 小组成员: 张梨贤.林静.周静平.黄腾飞 Beta冲刺随笔 Beta预备 Beta冲刺Day1 Beta冲刺Day2 Beta冲刺Day3 Beta冲刺Day4 Bet ...
- scrapy 模拟登陆
import scrapy import urllib.request from scrapy.http import Request,FormRequest class LoginspdSpider ...
- 201421123042 《Java程序设计》第8周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码: 答:查找 ...
- Django-rest-framework源码分析----权限
添加权限 (1)API/utils文件夹下新建premission.py文件,代码如下: message是当没有权限时,提示的信息 # utils/permission.py class SVIPPr ...