DOM---文档对象模型(Document Object Model)的基本使用

简介: 一、DOM简介   文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格(目前,HTML和XML文档是通过说明部分定义的)。

一、DOM简介 

  文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格(目前,HTML和XML文档是通过说明部分定义的)。

  DOM 可被 JavaScript 用来读取、改变 HTML、XHTML 以及 XML 文档,它本身属于浏览器。

二、使用DOM查找HTML元素

  HTML 文档中的所有节点组成了一个文档(或节点树)。HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。所以查找HTML中的某个标签即是查抄树上的某个节点。

1. 直接查找(通过属性、标签名等)

1 document.getElementById("i1");               //根据id获取单个元素
2 document.getElementsByName("i1");             //根据name属性获取多个元素
3 document.getElementsTagName('a');          //根据标签名称获取多个元素
4 document.getElementsByClassName('c1');     //根据class属性获取多个元素

2. 间接查找(通过已找到的其他标签)

1 tag = document.getElementById("i1");
2 tag.parentElement           // 父节点标签元素
3 tag.children                // 所有子标签
4 tag.firstElementChild       // 第一个子标签元素
5 tag.lastElementChild        // 最后一个子标签元素
6 tag.nextElementSibling     // 下一个兄弟标签元素
7 tag.previousElementSibling  // 上一个兄弟标签元素

三、使用DOM操作标签

1. 操作标签内容

tag = document.getElementById("i1"); 
content = tag.innerText;      //获取标签中的文本内容 
tag.innerText = "new_content";    //将标签内部文本赋值为new_content
//使用innerText只能操作标签内部的文本内容,即使标签内部包裹了其他标签也会被其忽略
// 常用的操作标签内容的方法,使用方法同innerText
innerText    --- 仅文本
innerHTML    --- 所有内容(包括标签)
value:       ---- 标签的值(下面分别是对有value属性的标签,使用value获取/操作值的详细介绍)
        input      ---  value获取当前输入的值
        select     ---  获取选中value的值(selectedIndex)
        textarea   ---  获取当前输入的    

2. 操作标签一般属性 

obj = document.getElementById("i1"); 
obj.attributes          //---- 获取标签的所有属性
obj.getAttributes(key)       //---- 获取标签某个属性的值
obj.setAttributes(key, value)       //---- 为标签设置属性
obj.removeAttributes(key)    //---- 为标签移除属性

3. 操作标签class属性

tag = document.getElementById('i1')
tag.className      // 获取tag的使用的class选择器名称
tag.className = 'c1'    //  tag使用名为c1的class选择器
tag.classList.add('c2')    //  给tag增添c2中的样式    
tag.classList.remove('c3')    // 移除tag使用的c3中的样式

4. 操作标签样式

// 在上面的操作class属性中,是对一个标签添加或删除一个css代码样式块, 对一个标签具体样式的操作如下

//比如,设置一个标签字体的大小
tag = document.getElementById("i1");
tag.style.fontSize = '16px';

// 其他的各种样式也是采用这种方式设置,设置时样式字段去掉'-',将每个单词的首字母大写(整体首字母小写,tag.style.backgroundColor)

5. 创建标签和操作标签

// 创建标签方式一:
var tag = "<a class='c1' href='http//:www.cnblogs.com'>博客园</a>"

// 创建标签方式二:
var tag = document.createElement('a')
tag.innerText = "博客园"
tag.className = "c1"
tag.href = "http://www.cnblogs.com"
// 操作标签,即将创建的插入整个HTML文档的某个位置

// 方式一
var mytag = document.getElementById('i1')
var obj = "<input type='text' />";
mytag.insertAdjacentHTML("beforeEnd",obj);   //将标签插入到mytab所代表的标签结束之前的位置,即最后一个子标签
mytag.insertAdjacentElement('afterBegin',document.createElement('p'));  //将标签插入到mytab所代表的标签开始之后的位置,即第一个子标签
//注意:第一个参数只能是'beforeBegin'、 'afterBegin'、 'beforeEnd'、 'afterEnd'

// 方式二
var tag = document.createElement('a')
xxx.appendChild(tag)   // 将新标签作为xxx的最后一个标签
xxx.insertBefore(tag,xxx[1])   // 将新标签插入xxx的第一个子标签之前
目录
相关文章
|
2月前
|
XML 编解码 JavaScript
DOM(文档对象模型)和 BOM(浏览器对象模型)
【10月更文挑战第19天】在前端开发中,理解 DOM(文档对象模型)和 BOM(浏览器对象模型)是至关重要的。它们是 Web 开发的基础,为我们提供了与网页文档和浏览器进行交互的能力。
|
3月前
ES6中map对象的使用,确实比Object好使哈
ES6中Map对象的使用优势,包括任意类型作为键、直接获取大小、增删查改操作等。Map的键可以是函数、对象、NaN等,支持forEach循环和for...of循环。
38 1
ES6中map对象的使用,确实比Object好使哈
|
2月前
|
Python
通过 type 和 object 之间的关联,进一步分析类型对象
通过 type 和 object 之间的关联,进一步分析类型对象
69 3
|
2月前
|
JavaScript 前端开发 大数据
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
在JavaScript中,Object.assign()方法或展开语法(...)来合并对象,Object.freeze()方法来冻结对象,防止对象被修改
41 0
|
4月前
|
XML JavaScript 测试技术
Web自动化测试框架(基础篇)--HTML页面元素和DOM对象
本文为Web自动化测试入门指南,介绍了HTML页面元素和DOM对象的基础知识,以及如何使用Python中的Selenium WebDriver进行元素定位、操作和等待机制,旨在帮助初学者理解Web自动化测试中的关键概念和操作技巧。
57 1
|
4月前
|
SQL 存储 数据库
对象关系映射(Object-Relational Mapping)
【8月更文挑战第17天】
102 2
|
4月前
【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
【Azure Developer】使用PowerShell Where-Object方法过滤多维ArrayList时候,遇见的诡异问题 -- 当查找结果只有一个对象时,返回结果修改了对象结构,把多维变为一维
|
4月前
|
JavaScript 前端开发 API
前端开发者的救赎:揭秘JQ对象与DOM元素的神秘转换术
【8月更文挑战第23天】在Web前端开发领域,jQuery(简称JQ)作为一款流行的JavaScript库,极大简化了HTML文档遍历、事件处理、动画及Ajax交互等操作。理解和掌握jQuery对象与DOM元素间的转换至关重要。
49 0
|
4月前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
|
4天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。