DOM编程基础

简介: DOM编程基础

一.DOM简介

什么是DOM:

文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。

DOM树 :

  • 文档:一个页面就是一个文档,DOM 中使用 document 表示
  • 元素:页面中的所有标签都是元素,DOM 中使用 element 表示
  • 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node 表示.

DOM把以上内容都看作是对象.

二.获取元素

如何获取页面元素

DOM在我们实际开发中主要用来操作元素。

获取页面中的元素可以使用以下几种方式:

  • 根据 ID 获取
  • 根据标签名获取
  • 通过 HTML5 新增的方法获取
  • 特殊元素获取

根据ID获取

使用 getElementById() 方法可以获取带有 ID 的元素:

document.getElementById('id');

参数:

  • 要查找的元素的 ID。ID是区分大小写的字符串,在文档中是唯一的;只有一个元素可以具有任何给定的 ID。

返回值:

  • 描述与指定 ID 匹配的 DOM 元素对象的 Element 对象,或者如果在文档中找不到匹配的元素则返回null。
  • 使用 console.dir() 可以打印我们获取的元素对象,更好的查看对象里面的属性和方法。

根据标签名获取:

  • 使用 getElementsByTagName() 方法可以返回带有指定标签名的对象的集合。
  • 哪怕只有一个元素,或者说压根就没有元素,也是返回一个伪数组

伪数组:

  • 即arrayLike,也称为类数组。是一种按照索引存储数据且具有length属性的对象。因为是对象,所以不能调用数组的方法,比如forEach()、push()等。

语法:

document.getElementsByTagName('标签名');

返回的是一个Element对象的集合,以伪数组的的方式存储的。

注意:

  • 因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历。
  • 得到元素对象是动态的
  • 还可以获取某个元素(父元素)内部所有指定标签名的子元素
  • element.getElementsByTagName('标签名');
  • 注意:父元素必须是单个对象(必须指明哪一个是元素对象).获取的时候不包括父元素自己。

通过 HTML5 新增的方法获取

  • document.getElementsByClassName(‘类名’);// 根据类名返回元素对象集
  • document.querySelector('选择器'); // 根据指定选择器返回第一个元素对象
  • document.querySelectorAll('选择器'); // 根据指定选择器返回
  • querySelector 和 querySelectorAll里面的选择器需要加符号,比如:document.querySelector(‘#nav’);

例如:

<div class="box">盒子1</div>
    <div class="box">盒子2</div>
    <div id="nav">
        <ul>
            <li>首页</li>
            <li>产品</li>
        </ul>
    </div>
    <script>
        // 1. getElementsByClassName 根据类名获得某些元素集合
        var boxs = document.getElementsByClassName('box');
        console.log(boxs);
        // 2. querySelector 返回指定选择器的第一个元素对象  切记 里面的选择器需要加符号 .box  #nav
        var firstBox = document.querySelector('.box');
        console.log(firstBox);
        var nav = document.querySelector('#nav');
        console.log(nav);
        var li = document.querySelector('li');
        console.log(li);
        // 3. querySelectorAll()返回指定选择器的所有元素对象集合
        var allBox = document.querySelectorAll('.box');
        console.log(allBox);
        var lis = document.querySelectorAll('li');
        console.log(lis);
    </script>

获取特殊元素(body,html)

获取body元素

doucumnet.body // 返回body元素对象

获取html元素

document.documentElement // 返回html元素对象

事件基础

事件概述

JavaScript 使我们有能力创建动态页面,而事件是可以被 JavaScript 侦测到的行为。

简单理解:事件就是一种触发-响应机制

网页中的每个元素都可以产生某些可以触发 JavaScript 的事件,例如,我们可以在用户点击某按钮时产生一个事件,然后去执行某些操作。

事件三要素

事件源 (谁)

事件类型 (什么事件)

事件处理程序 (做啥)

例如现在我们实现一个点击按钮,浏览器就可以弹出来一个对话框,上面显示:你好啊。

代码实现:

//事件源 事件被触发的对象 
var btn = document.getElementById('btn');
//onclick 事件类型 如何触发 什么事件 比如鼠标点击,鼠标经过,还是鼠标按下
//事件处理程序 通过一个函数赋值的方式完成
btn.onclick = function() {
  alert('你好吗'); 
};

三.执行事件的步骤

  1. 获取事件源
  2. 注册事件(绑定事件)
  3. 添加事件处理程序(采取函数赋值形式)
  4. 常见的鼠标事件

例如:

下拉菜单三要素:

  • 事件源:下拉按钮
  • 事件类型:鼠标点击或者经过
  • 事件处理程序:显示表单
目录
相关文章
N..
|
7月前
|
JavaScript 前端开发 UED
DOM编程中的form对象
DOM编程中的form对象
N..
42 0
N..
|
7月前
|
XML JavaScript 数据格式
DOM编程中的Document对象
DOM编程中的Document对象
N..
67 0
|
JavaScript 前端开发
DOM编程进阶(JS)
本篇是DOM编程基础(JS)的进阶版
|
XML 移动开发 JavaScript
DOM编程基础
DOM编程基础
74 0
|
JavaScript
DOM编程2-重要案例!!!
DOM编程2-重要案例!!!
|
JavaScript 前端开发 API
DOM编程:Document Object Model
DOM编程:Document Object Model
|
存储 JavaScript 前端开发
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(一)
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(一)
71 0
|
XML JavaScript 前端开发
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(二)
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(二)
45 0
|
7月前
|
XML JavaScript 前端开发
属性和方法向 XML DOM 定义了编程接口
XML DOM 提供编程接口,通过属性和方法操作XML结构。使用JavaScript等语言,可访问和修改节点。属性如nodeName、nodeValue揭示节点信息,方法如getElementsByTagName、appendChild、removeChild实现查找、添加和删除节点功能。节点对象x的应用示例贯穿其中。
|
6月前
|
XML JavaScript 前端开发
属性和方法向 XML DOM 定义了编程接口
XML DOM 是一个编程接口,它将XML表示为节点对象集合,可通过JavaScript等语言访问。接口通过属性和方法定义,属性如nodeName、nodeValue显示节点信息,方法如getElementsByTagName、appendChild、removeChild执行操作。例如,x.nodeName返回节点名称,x.appendChild(node)添加子节点。