ie插件获取dom_读书笔记《DOM编程艺术》DOM

  1. DOM的理解

1.1 D:当创建了一个网页并把它加载到Web浏览器中时,DOM就生成了,它将我们编写的网页文档转换成一个文档对象。

1.2 O:“对象”是一种自足的数据集合,相关联的变量称为这个对象的属性,只能通过这个对象调用的函数称为这个对象的方法。

JS中的对象可以分为三种类型

A、用户定义对象:程序员自行创建的对象。

B、内建对象:Array、Math、Date

C、宿主对象:由浏览器提供的对象。

JS最初版本中,非常重要的一些宿主对象就可以使用了,最基础的对象是Window对象。Window对象对应着浏览器窗口本身,这个对象的属性和方法通常统称为BOM。

更好理解:(window object model)窗口对象模型。

document对象的主要功能就是处理网页内容。接下来我们基本上只讨论document对象的属性和方法。

1.3 M:model map 某种事物的表现形式

DOM代表着加载到浏览器窗口的当前网页。浏览器提供了网页的地图,我们可以通过JS去读取这张地图。要想从DOM获得信息,必须先把各种表示和描述文档的“图例”弄明白。

DOM把文档表示为一颗家谱树

家谱树、节点树:使用parent、child、sibling等记号来表明家族成员之间的关系

根元素是html

1.4 节点: 文档是由节点构成的集合

  1. 元素节点:DOM的原子元素节点。这些元素在文档中的布局形成了文档的结构。
  2. 文本节点:文本节点总是被包含在元素节点的内部,或者间接包含。
  3. 属性节点:用来对元素做出更具体的描述,因为属性节点总是被放在起始标签里,所以属性节点总是被包含在元素节点中,所有的属性节点都被元素包含。
  4. CSS:DOM并不是唯一和网页结构打交道,CSS告诉浏览器应该如何显示一份文档的内容。

继承是CSS技术中的一项强大功能,类似于DOM,CSS也把文档的内容视为一颗节点树,节点树上的各个元素将继承其父元素的样式属性。

有时我们需要将某些样式作用于某个特定的元素,需要把元素与其他元素区分开,需要使用class属性或id属性。

calss属性:为相同的class属性值相同的所有元素定义同一种样式。

id属性:给页面里的某个元素加上一个独一无二的标识符。

id属性就像是一个挂钩,一头连接着文档里的某个元素,另一头连着CSS样式表里的某个样式。DOM也可以使用这种挂钩。

1.5 获取元素

有三种DOM方法可以获取元素节点:

  1. getElementById

返回一个对象。

document对象特有的函数。

document.getElementById(‘xxx’);

abc83eda63f80ee110f5014e26c01a9a.png

05a3d938ef8a77e85315054d8891eb2b.png

文档中的每一个元素都是一个对象,利用DOM提供的方法能得到任何一个对象。

2.getElementsByTagName

返回一个对象数组

document.getElementsTagName(‘li’);

82bf9e01145adec02f969065712e87af.png

44765b185c2eeffc32565bd832343759.png

即使这个标签只有一个元素,也返回一个数组。

3.getElementsByClassName

返回一个对象数组

document.getElementsClassName(‘yyy’);

e22ac32da676ae2229d5dd9f2609d483.png

da7358938c80a305d9bea327dbff6d49.png

也可以结合使用,比如,只要id为xxx的里面的元素。

0fbbe40db2e3c162f13e872f5b5defe7.png

672e23c3a119abf359883249c559f767.png

这个函数,IE8以下有兼容问题。不过,现在,没有继续兼容IE的了吧?瑟瑟发抖……

1.6 获取和设置属性(只能用于元素节点)

A、getAttribute

object.getAttribute(attribute);

getAttribute方法不属于document对象,只能通过元素节点对象调用。

e3b6f16add7bcc4dea2e79fb2f48bee7.png

699f8824a271a3a9e57c7fd4527c1174.png

如果它们没有某个属性,将会是返回空白或者null,至于是哪个,要看是什么浏览器。

966e762d42bd5c3e64961f80c9eb4e91.png

8f7a8fa9ac6e1476bbc80247fb90080a.png

B、setAttribute

对属性节点的值做出修改

object.setAttribute(attribute,value)

用在本身就有这个属性的元素上,就会将原来的值覆盖掉。

d704fb78e9b0b2677ce80ff43cf6e428.png

740072d3a5dde742063840783a80ed12.png

bd7185f0e36c2042532ed275bbb5fefd.png

但是,setAttribute做出的修改不会反映在文档本身的源代码里。

这种表里不一的现象源自DOM的工作模式:

先加载文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容。

这正是DOM的真正威力:对页面内容进行刷新却不需要在浏览器里刷新页面。

tips:这五种方法,是将要编写的许多DOM脚本的基石。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

针对Fluent-Bit采集容器日志的补充

hello,之前我写过《一套标准的ASP.NET Core容器化应用日志收集分析方案》,在公司团队、微信公众号、Github上反映良好。其中配置Fluent-bit使用Forward协议收集容器日志,需要在Docker-Compose App配置Loging DriverFluentd实践中,…

Oracle结构设计技巧(访问数据库象访问内存一样 快)

尽管Oracle系统本身已经提供了若干种对系统性能进行调节的技术,但是,假如数据库设计本身就有问题特别是在结构上设计得尤其糟糕,那你纵有天大的本事又能奈何?因此,Oracle数据库的设计者完全有必要弄清楚(从项目着手设计开始)该如…

js template换行_JavaScript字符串换行符?

小编典典我刚刚使用了一些愚蠢的JavaScript测试了一些浏览器:function log_newline(msg, test_value) {if (!test_value) {test_value document.getElementById(test).value;}console.log(msg : (test_value.match(/\r/) ? CR : ) (test_value.match(/\n/) …

在每个运行中运行多个查询_在Kubernetes中运行OpenEBS

什么是OpenEBS?现在,OpenEBS是kubernetes下与容器原生和容器附加存储类型相关通用的领先开源项目之一。 通过为每个工作负载指定专用的存储控制器,OpenEBS遵循容器附加存储或CAS的脚步。 为了向用户提供更多功能,OpenEBS具有精细的…

如何在 C# 8 中使用默认接口方法

C# 8 中新增了一个非常有趣的特性,叫做 默认接口方法 (又称虚拟扩展方法),这篇文章将会讨论 C# 8 中的默认接口方法以及如何使用。在 C# 8 之前,接口不能包含方法定义,只能在接口中定义方法签名,还有一个就是接口的成员…

.Net下二进制形式的文件(图片)的存储与读取 [ZT]

.Net下图片的常见存储与读取凡是有以下几种:存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].1.参数是图片路径:返回Byte[]类型: publicbyte[] GetPictureData(stringimagepath) { /**…

c++tcp接收文件缓存多大合适_网易面经:深剖TCP协议的流量控制和拥塞控制,你懂了吗?...

1.自我介绍项目2.RPC框架和普通http有什么区别和优势? 基于Tcp封装还是http封装的3.rpc是长连接吗?如果要传输一个特别大的文件 底层还是基于流吗? Nio是一个什么IO模型?4.github了的watch star fork5.异常和error的区别&#xff…

cmd看excel有多少个子表_Excel中多个工作簿(工作表)如何合并为1个工作簿(工作表)?...

看到Excel多表合并,其实常见的有2种场景场景一:多个Excel文件需要合并为1个Excel文件(多个工作簿合并为1个工作簿)场景二:1个Excel文件种有多个工作表,需要合并为1个工作表首先来看下,场景一(多个Excel文件合并为1个文…

如何在 ASP.Net Core 中使用 LoggerMessage

ASP.NET Core 是一个开源的、跨平台的、轻量级模块化框架,可用于构建高性能、可伸缩的web应用程序,你也许不知道 ASP.NET Core 中有一个藏得很深,而且非常强大的特性,那就是 LoggerMessage,与内建的 Logger 相比&#…

希望不要T我~~哈哈...

不在学校,上网不便,账号未登入时间期限若到~还望别T,呵呵....我喜欢这里~多谢老大!!!!技术成就梦想!!!!!转载于:https://blog.51cto.c…

模拟器显示空白图片_Kawaks街机模拟器,还是小时候的味道!

APP菜园打造属于我们自己的APP帝国1.打开支付宝app,首页搜索 “8221050” 然后点击快捷功能,天天领红包。2.软件领取流程:1.认真阅读下软件介绍;2.找到图片下方的“获取链接”复制;3.打开手机上的浏览器粘贴链接搜索(…

7段均衡器最佳参数_介绍一下十段均衡器的设置和参数

介绍一下十段均衡器的设置和参数【第一章.EQ的基本定义】EQ是Equalizer的缩写,大陆称为均衡器,港台称为等化器。作用是调整各频段信号的增益值。10段均衡器表示有10个可调节节点。节点越多,便可以调节出更精确的曲线,同时难度更大…

ASP.NET Core 查看应用状态和统计

在日常开发中,我们需要关注 .NET 应用的资源使用情况,方便排查问题和扩容。通过 Ajax 请求获取统计信息,展示成图表,如下图:CLRStats 插件,一个统计 .NET 应用资源使用情况的插件,包含&#xff…

circle后面是什么意思 python_Ape circle Python操作-第2-01章-列表操作,小猿圈,作业

# 写代码,有如下列表,按照要求实现每一个功能li [alex, eric, rain]# 计算列表长度并输出length len(li)print(f1-li的长度是:{length})# 列表中追加元素“seven”,并输出添加后的列表li.append(seven)print(2-追加元素后的li是…

python插入排序_python 插入排序,选择排序

插入排序: def insert_sort(lst): for i in range(1,len(lst)): xlst[i] #x是一个临时变量,表示当前轮到的数字 ji #临时变量 j ,为后续的排序提供方便 while j>0 and lst[j-1]>x: #当j 小于0,说明已经数字比较到了第一位,说…

【Vscode】调试DotNet Core代码

Visual Studio作为宇宙第一的IDE,开发调试.net core app,无一能出其右,我们还需要去了解Visual Studio Code吗?答案是肯定。杀鸡焉用牛刀:就一个hello world的Console App,还需要打开Visual Studio吗&#…

Visual Basic、C# 和 C++ 的数据类型比较(转)

类别类名说明Visual Basic 数据类型C# 数据类型C 托管扩展数据类型JScript 数据类型整数Byte8 位的无符号整数。BytebytecharByteDZX7¢&dot [url]www.cnntec.com[/url]…gT‚sSByte8 位的有符号整数。 不符合 CLS。DZX7¢&dot [url]www.cnntec.com[/url]…gT‚…

pandownload 卢本伟_PanDownload复活了!60MB/s!附下载地址

最近几天,听说PanDownload 复活了有人接盘了,重新制作上线推出了更加强劲的复活版!但是笔者去下载了一下,发现并不能使用于是经过百般搜寻,发现被人提供的已经是旧版了于是,我找到了最新版,9月2…

mysql 精度_mysql-笔记 精度

decimal数据类型是fixed-point类型,计算结算是准确的。numeric/dec/fixed / integerfloat/double数据类型是 floating-point类型,计算结果是大约的。float/double/double precision/realDecimal(M,D):M 最大精度位数 1到65D小数位数 0到30,不…

linux安装rz命令_Linux 安装dep安装包命令

rootlsy-ubuntu:~# dpkg -i sublime-text_build-3126_amd64.deb 正在选中未选择的软件包 sublime-text。(正在读取数据库 ... 系统当前共安装有 256092 个文件和目录。)正准备解包 sublime-text_build-3126_amd64.deb ...正在解包 sublime-text (3126) ...正在设置 sublime-tex…