DOM:document object model。文档对象模型。它主要由许多节点。而基于JS对象的一切视角,DOM核心是节点对象和操作方法的属性。从下面三方面来介绍DOM。

一、节点查找与操作

这部分表面看起来有些碎,但细细挖掘还是有非常大规律可循的。

见导图:

二、DOM之CSS样式

对于这部分的内容,涉及到的也是CSS样式的获取和操作。

获取:

1.行内:

	var box=document.getElementById('box');
alert(box.style.width);

2.rule获取

	var sheet=document.styleSheets[0];
var rule=(sheet.cssRules|| sheet.rules)[0];
alert(rule.style.width);

3.计算获取  

	var style = window.getComputedStyle ?
window.getComputedStyle(box, null) : null || box.currentStyle;//考虑各浏览器兼容  
style.width;
style.height

操作:实现跨浏览器兼容操作

1.插入

functioninsertRule(sheet,selectorText,cssText,position){
if(sheet.insertRule){
sheet.insertRule(selectorText+'{'+cssText+'}',position); }else if(sheet.addRule){ sheet.addRule(selectorText,cssText,position);
}

2.删除

function deleteRule(sheet,position){
 if (sheet.deleteRule){ //假设这样的方式存在
sheet.deleteRule(position); //非IE
}else if(sheet.removeRule){
sheet.removeRule(position);
}

3.改动:通过赋值,来改动CSS样式

		window.onload=function(){
//跨浏览器兼容rules
var sheet=document.styleSheets[0];
var rules=sheet.cssRules || sheet.rules;
var rule1=rules[0];
rule1.style.color='green'; //这样的能够在链接CSS样式中改动详细的属性
var box=document.getElementById('box');
box.style.color='blue'; //这样的方法改动的是行内样式
}

小结:针对于CSS样式不管是属性获取还是对它操作。都能够分为三种情况行内,rule,和计算。而这三种仅仅有行内和rule操作为可读可写,计算样式仅仅供获取,不能进行改动。

三、元素尺寸和位置

通过上述CSS样式的方式,我们也是能够获取DOM中各个元素的尺寸和位置的,但有一个弊端:当元素中存在pading,margin这些样式设计时,这些方法便不能获得一些元素真正的大小和位置。

JS中提供了专门儿用于获取元素尺寸和大小的方法。

实际大小:针对于元素的实际大小。主要与四个因素有关,padding。margin,border,scroll。而以下提供的几种方法,针对于不同的因素。会有不同的结果,仅依据需求使用就可以

周边大小:

小结:DOM是JS学习的一个核心内容。当中涉及到的元素节点的属性和基本操作也是前台页面中最重要的组成,通过这些,才干使JS中基于对象的思想发挥作用。能够说,B/S UI页面中的一切都是建立在这些元素的基础之上的。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

JS它DOM的更多相关文章

  1. js的DOM对象

    1.js的Array对象           ** 创建数组(三种)                          - var arr1 = [1,2,3];                    ...

  2. python学习笔记十三 JS,Dom(进阶篇)

    JS介绍 JavaScript 是属于网络的脚本语言!JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用:JavaScript 是因特网上最流 ...

  3. 框架操作DOM和原生js操作DOM比较

    问题引出 对于Angular和React操作DOM的速度,和原生js操作DOM的速度进行了一个比较: 一个同学做的demo 代码如下: <!DOCTYPE html> <html n ...

  4. JavaScript基础15——js的DOM对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. jQuery对象与JS原生dom对象之间的转换

    jQuery就是JS的一个扩展库,工具库,提供很多方便快捷的方法,所以将JS对象转换为jQuery对象后,能更方便地操作这个对象.但是jQuery对象也不是万能的,有一些JS对象有的能,jQuery对 ...

  6. JS1 js获取dom元素方法

     js获取dom元素方法  1.通过ID选取元素(getElementById) 1)使用方法:document.getElementById("domId")         其 ...

  7. JS的DOM操作及动画

    JS的DOM操作DOM:Document Object ModelBOM:Bowers(浏览器) Object Model找到元素:var a=document.getElementById(&quo ...

  8. js操作DOM对象

    js操作DOM对象  (Document Object Model)文档对象模型 nodeType返回值 1:元素节点 2:属性节点 3:文本节点 8:注释节点 9: 文档节点 nodeName 节点 ...

  9. DOM是什么?有什么用处?js与DOM啥关系?

    本文转载于:https://blog.csdn.net/u012155729/article/details/78135393 转载仅供自己后期学习 DOM简介大家都想知道dom是什么,翻了各种文档, ...

  10. 继续JS之DOM对象二

    前面在JS之DOM中我们知道了属性操作,下面我们来了解一下节点操作.很重要!! 一.节点操作 创建节点:var ele_a = document.createElement('a');添加节点:ele ...

随机推荐

  1. UML之部署图(Deployment Diagram)

    计算机系统由硬件和软件组成,应用软件的命令,先转化为操作系统命令,再转化为汇编语言,最后再转化为二进制命令,由硬件来运行.软件要部署到硬件上才具有生命.Deployment Diagram展示的就是把 ...

  2. jQuery插件实战之fullcalendar(日历插件)Demo

    jQuery的插件许多,应用的场景也很丰富,今天我这里给大家介绍一款很有用的日历页面开发插件 - fullcalendar,眼下最新版本号是1.5.1,使用这款插件可以高速帮助你高速编程实现基于web ...

  3. Erlang学习: EUnit Testing for gen_fsm

    背景:gen_fsm 是Erlang的有限状态机behavior,很实用.爱立信的一位TDD大神写了一篇怎样測试gen_fsm,这个fsm是一个交易系统,负责简单的交易员登陆,插入item,删除ite ...

  4. Android 性能优化 五 性能分析工具dumpsys的使用

    Android提供的dumpsys工具能够用于查看感兴趣的系统服务信息与状态,手机连接电脑后能够直接命令行运行adb shell dumpsys 查看全部支持的Service可是这样输出的太多,能够通 ...

  5. java 解析 json 遍历未知key

    1.—————————————————————————————————————————————————————————————— import net.sf.json.JSONObject; Stri ...

  6. ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件

    原文:ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件 Login控件它是属于Membership服务的一部分,必须配置Membership提供程 ...

  7. Java 里把 InputStream 转换成 String 的几种方法

    我们在 Java 中经常会碰到如何把 InputStream 转换成 String 的情形,比如从文件或网络得到一个 InputStream,需要转换成字符串输出或赋给别的变量. 未真正关注这个问题之 ...

  8. IOS加强知识(1)理解力Objective-C

    一直想写一般Objective-C帖子,总是没时间.所以,我希望有一个巨大的知识更小.温馨提示小的变化.写一点点,每天.东西把他们的学习分享,好了废话不多. 1.一门动态的语言OC Object-C( ...

  9. Android在发送带有附件的邮件

    准备好工作了-下载最新的版本号JMail https://java.net/projects/javamail/pages/Home#Download_JavaMail_1.5.2_Release h ...

  10. Oracle数据库的锁类型

    Oracle数据库的锁类型 博客分类: oracle   Oracle数据库的锁类型 根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data   locks,数据锁),用于保护 ...