DOM

1.JavaScript 如何与网页交互的?

HTML是标记,而JavaScript是代码。它们是如何交互的呢?这是通过网页的表示,既文档对象模型(DOM)实现的。

1.2DOM的作用是什么

HTML是标记组成,让你能够描述一系列组成网页的嵌套元素。JavaScript是代码,用于对计算进行描述。HTML和JavaScript两种截然不同的技术是怎么走到一起的?它们根本就不是一路人,是不是就无法交流呢?

当然不是,因为它们之间有座桥:DOM。通过DOM,JavaScript能够与网页进行交流

JavaScript通过DOM修改元素时,实际上也在即时地修改网页内容。因此,当修改DOM内容时候,网页也随之变化。

1.3 什么是DOM

DOM中的D代表document,它是树的跟,js就是通过使用它来访问整个DOM

DOM中的O代表对象,既document对象,它的主要功能是处理网页内容。我们需要使用document对象的属性和方法

DOM中的M代表着“model 模型,”也可以说是Map地图,他们的含义都是某种事物的表现形式。就像一个模型火车代表着一辆真正的列车、一张城市街道图代表着一个实际存在的城市.DOM代表着加载到浏览器窗口的当前页面。浏览器提供网页的地图(或者说模型),而我们可以通过JavaScript去读取这张地图。

既然是地图,就必须有诸如方向、等高线和比例尺之类的图例.要想看懂和使用地图,就必须知道这些图例的含义和用途,这个道理同样适用于DOM。要想从DOM获得信息,必须把各种表示和描述文档的“图例”弄明白

在每个DOM(文档对象模型)的顶部都是一个document对象,它下面是一棵树,其中包含由HTML标记中各个元素构成的树枝树叶。

1.4 DOM是如何来的

DOM是浏览器在加载网页时创建的。

浏览器加载完网页、显示网页的所有内容并生成了表示网页的DOM。

1.4.1 DOM创建过程是怎么样的

  • 在浏览器加载网页时,浏览器不仅对HTML进行分析并将其渲染到显示器中,还创建一系列表示标记的对象,这些对象存储在DOM中。我们称之为文档对象模型,简称DOM。
  • JavaScript代码可以通过与DOM交互来访问元素及其内容,还可使用DOM来创建和删除元素
  • JavaScript代码修改DOM时,浏览器将动态地更新网页,让用户能够在网页中看到新内容。

 

1.4.2 如何使用DOM表示网页

DOM把一份文档表示为一棵树,更具体地说是,DOM把文档表示为一颗家谱树。家谱树的典型用法时表示一个人类家族的谱系,并使用parent(父)、child(子)、sibling(兄弟)等记号表明家族成员之间的关系.利用简单的家谱关系记号,我们可以把个元素之间的关系简明清晰地表达出来。

有了DOM之后,js就有了通过DOM查看和修改网页的能力

2.元素对象的属性和方法

2.1 JavaScript 从DOM获取的到底是什么?

使用getElementByxxx从DOM获替换取元素时,得到的是一个元素对象,你可以用它来读取、修改或替换元素的内容和特性。神奇之处在于,当你修改元素时,所作的修改也将反映到网页中。

1     <body>
2         <p id="p1" >使用JavaScript获取id为p1的元素</p>
3         <script type="text/javascript">
4             var elem=document.getElementById("p1");
5         </script>
6     </body>
7 </html>

 

2.2元素对象的属性和方法

对象也有属性和方法。就元素对象而言,我们可以使用其属性和方法来读取和修改元素

2.2.1 方法 :getelement getatribute setattribute

2.2.2 属性 innerHTML

2.2.3 这些属性和方法使得js可以对元素对象执行的一些操作。

  • 从DOM中获取元素
  • 创建元素并将其加入DOM中
  • 从DOM删除元素
  • 遍历DOM中的元素

通过DOM修改元素时,实际上你也在即时地修改网页内容。因此,当你修改DOM内容时候,网页也随之变化。

2.3 HTML DOM到底是什么

是HTML和JavaScript之间的桥梁,是HTML的标准对象模型和编程接口。它定义了:

  • 作为对象的HTML元素
  • 所有HTML元素的属性
  • 访问所有的HTML方法
  • 所有的HTML元素事件

通过HTML Dom,JavaScrip能够访问和改变HTML文档中的所有元素

总之,HTML DOM是关于如何获取、更改、添加和删除HTML元素的标准。是标准对象模型和编程接口

所以我们的学习重点就从javaScript能做什么编程——>学习元素对象的属性和方法

2.4 javaScript能够做什么?

  • 改变页面上的所有HTML元素
  • 改变页面上所有的HTML属性
  • 改变页面中所有的CSS样式
  • 删除已有的HTML元素和属性
  • 添加新的HTML元素和属性
  • 对页面中已有的HTML事件做出反应
  • 能在页面中创建新的HTML事件

3.事件处理函数/响应式代码

 在javaScript中,绝大多数代码是事件响应式的。用户单击网页、通过网络收到数据、定时器到期、DOM发生变化等。事实上,在浏览器中,幕后始终有事件在不断发生。我们需要学习如何编写响应式事件的代码以及为何要这么做。

3.1 为什么要把js元素放在body结束标签之前

因为dom是浏览器加载网页是创建的,如果js代码在前,body中的元素在后。浏览器还未创建dom,就不可能只从代码

因为在处理DOM的时候,确保代码在网页完全加载后再执行至关重要,否则,代码执行时,DOM很可能还未创建。

3.1.2如何修复这种问题呢?

可将代码移到<body>元素的末尾

另一种更简单的确保代码再正确的时候运行,就是让浏览器再加载网页并创建DOM后再执行代码。

做法:首先创建一个函数,其中包含要在网页加载完毕后执行的代码

第二步:将这个函数赋值给对象window的属性onload

1 function init(){
2                 var elem=document.getElementById("p1");
3                 p1.innerHTML="使用元素对象的方法innerHTML改变元素文本";
4             }
5 window.onload=init;

3.1.3上面的代码有什么作用呢?

对象window将调用你赋给其属性onload的函数,但仅在网页加载完毕之后才这么做。这让程序员能指定在网页加载完毕之后将要执行什么样的代码

再深入研究以下onload的工作原理,因为它使用了一个很常见的JavaScript编码模式

给发生事件的对象提供一个函数,,事件发生之后,这个对象将通过调用这个函数来通知你

3.2为什么JavaScript中绝大多数代码是响应式的

以响应事件的方式组织代码是另一种代码编写方式。要以这种方式编写代码,需要考虑可能发生的事件以及代码应该如何响应这些事件。在计算机科学中,通常说这种代码是异步的,因为我们编写的代码仅在相应的事件发生时才会被调用。这种代码编写方式也改变了我们看待问题的角度,不在逐步的编写代码实现算法,而是将处理事件的众多处理程序整合起来,构成一个应用程序。

3.3 如何编写响应式代码

给发生事件的对象提供一个函数

事件发生之后,这个对象将通过调用这个函数来执行需要的操作

  • 那个元素
  • 触发了什么事件
  • 要如何响应

3.4 事件对象的工作原理

文档对象模型事件发生时,将向事件处理程序传递一个事件对象。事件对象包含一些有关事件的常规信息。如事件是那个元素出发的,事件是何时发生的。另外,还将获得有关事件的特有信息。例如:用户单击鼠标时,你将获得单击位置的坐标。

 

 

事件对象的一些常用属性

target 它存储了一个引用,将指向触发事件的元素
type 字符串,如’click‘或”load“,指出发生的是那种事件
touches 在触摸设备上,确实使用多少根手指来触摸屏幕
keyCode 用户刚按下了那个键
timeStamp 事件是何时发生的

 

以上

posted @ 2022-08-08 18:44  炸鸡好吃真好吃  阅读(192)  评论(0编辑  收藏  举报