DoM文档对象模型

  • DOM全称Document Object Model(文档对象模型)
  • JavaScript中通过DOM来对HTML文档进行操作,只要理解了DOM就可以随心所欲操作web页面
  • 文档:文档表示的就是整个HTML网页文档
  • 对象:对象表示将网页中的每一个部分都转换为了一个对象
  • 模型:使用模型来表示对象之间的关系,方便获取对象
  • DOM是一种处理HTML文档的应用程序接口,在W3C制定的DOM规范中,DOM主要包括Core DOM、XML DOM和HTML DOM。JavaScript中DOM一般指HTML DOM
  • 每创建一个网页,DOM就会根据这个网页创建一个文档对象,DOM就是这个文档对象的模型,这个模型表示为树状模型。在这个树状模型中,网页中的元素与内容表现为一个个相互连接的节点,所以说一个网页实际上就是一个文档对象
  • 浏览器已经提供文档节点对象,这个对象是window对象属性,可以在页面中直接使用,文档节点代表的是整个网页

DOM将网页表示为一颗树,该树的节点类型有多种。

            元素节点——html标签

            文本节点——文本

            属性节点——属性总是被包含在标签里,所以属性节点总是被包含在元素节点当中。(元素节点(属性节点,文本节点))

通常可以通过开发者工具(如firebug)查看dom结构,但是要说明一点,开发者工具中的DOM并不完整,因为有些元素存在于DOM中,但是不会被开发者工具显示。比如回车会被当做一个文本节点。

 常用的DOM节点类型
节点类型             ID    说明
Element              1    元素节点,HTML标签对,如<head><body><p>
Attribute             2    元素节点的属性,如<a>标签的href="xxx"属性
Text                     3    文本节点,指的是元素节点中的内容,如“p”节点中的“文档段落”
Comment            4    注释节点,表示文档中的注释
Document           5    文档节点,表示整个文档对象

DocumentType   6    文档类型定义

 获取元素有以下几种:

根据ID获取:

语法格式: var 元素对象 = document . getElementById ( "id 属性名称 " );
作用:通过页面中某个元素的 id 属性来获取这个元素对象。
返回 值:这个方法执行后会有一个返回值,如果获取到则返回当前对象,否则返回 null 。

    <div id="box">这是一个块</div>
    <script>
        var box = document.getElementById('box');
        console.log(box);
        console.log(typeof box);
    </script>

根据标签名获取:

语法格式: var 返回对象集 = document . getElementsByTagName ( ' 标签名称 ' );
作用:根据指定的标称名称返回这些对象。

    <ul>
        <li>北京</li>
        <li>天津</li>
        <li>上海</li>
</ul>
    <script>
        var lis = document.getElementsByTagName('li');
        console.log(lis);
    </script>

除了可以使用 document 来引用这个方法外,还可以使用它父组对象来引用这个方法。

// 获取父级元素 
        var ul = document.getElementById('first');
        console.log(ul);
        // 通过父级元素来获取子元素 
        lis = ul.getElementsByTagName('li');
        console.log(lis);

根据name属性获取:

语法格式: var 元素对象集 = document . getElementsByName ( 'name 属性名 ' )
作用:根据 name 属性来获取元素对象的集合。

 
    <p> <input type="checkbox" name="hobby" value="音乐">音乐
        <input type="checkbox" name="hobby" value="游戏">游戏
    </p>
    <script>
        var hobbies = document.getElementsByName('hobby');
        console.log(hobbies);
    </script>

根据类名来获取:

语法格式: var 元素对象集 = document . getElementsByClassName ( ' 类名称 ' );
作用:根据元素的样式名称来获取元素集(也就是元素的 class 属性来获取)。

    <div class="box">div1</div>
    <div class="box">div2</div>
    <script>
        var divs = document.getElementsByClassName('box');
        console.log(divs);
    </script>

根据选择器获取:

根据指定选择器获取元素对象有两种方式:一是获取单个,一是获取多个。
获取单个对象: var 元素对象 = document . querySelector ( ' 选择器名称 ' );
获取多个对象: var 元素对象 = document . querySelectorAll ( ' 选择器名称 ' );

    <div id="box1">有id的div</div>
    <div class="box2">有类样式的div</div>
    <div class="box2">有类样式的div</div>
    <p> <input type="text" name="account" value="xian">
        <input type="radio" name="gender" value="男">男
        <input type="radio" name="gender" value="女">女 </p>
    <script>
        // 根据标签获取 
        var div = document.querySelector('div');
        console.log(div);
        var divs = document.querySelectorAll('div');
        console.log(divs);
        // 根据id获取
        div = document.querySelector('#box1');
        console.log(div);
        // 根据类样式 
        divs = document.querySelectorAll('.box2');
        console.log(divs);
        // 根据属性选择器来获取 
        var gender = document.querySelectorAll('input[type="radio"]');
        console.log(gender);
    </script>

获取body元素:

语法格式: document . body ;
作用:获取 body 中的所有元素

 
    <div class="box"></div>
    <input type="text" name="" id="">
    <h1>h1</h1>
    <script> 
        var body = document.body;
        console.log(body);
    </script>

获取Html元素:

语法格式: document . documentElement ;
作用:获取整个 html 元素。

   <div class="box"></div>
    <input type="text" name="" id="">
    <h1>h1</h1>
    <script>
        var html = document.documentElement;
        console.log(html);
    </script>

元素属性

语法说明
元素对象.属性名获取元素指定属性的值
元素对象.属性名=值设置元素指定属性的值
    <img src="1.jpeg">
    <script>
        var img = document.querySelector('img')
            // 获取src属性 
        console.log(img.src);
        // 修改src属性 
        img.src = '2.jpeg';
        // 添加属性 
        img.alt = '图片';
        img.title = '提示';
        console.log(img);
    </script>

表单属性

属性说明
type表单元素类型
value表单元素值
checked表单元素选中zhuanzhuan状态
selected表单元素选择状态
disbled表单元素禁用开关

  这些属性都具有读写操作,通过 元素对象.属性名 来获取元素属性值,通过 元素对象.属性名= 值 来设置元素属性值。而 checked、selected和disabled 元素属性的值是布尔类型。

样式元素

在 DOM 中可以通过 JavaScript 来修改元素的大小、颜色和位置等样式。常用方式有: 

属性使用说明
styleelement.style操作行内样式
classNameelement.className操作类名样式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值