认识DOM(文档对象模型)

DOM(Document Object Model):定义访问和处理HTML文档的标准方法。

DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM简介</title>
</head>
<body>
<h2>
<a href="http://www.baidu.com">JavaScript DOM</a>
</h2>
<p>哒哒哒</p>
<ul>
<li>JavaScript</li>
<li>DOM简介</li>
</ul>
</body>
</html>

将HTML代码分解为DOM节点层次图:

HTML文档可以说由节点构成的集合,三种常见的DOM节点:

1. 元素节点:上图中<html>、<body>、<p>等都是元素节点,即标签。

2. 文本节点:向用户展示的内容,如<li>...</li>中的JavaScript、DOM、CSS等文本。

3. 属性节点:元素属性,如<a>标签的链接属性href="http://www.baidu.com"。

一、通过ID获取元素

语法:

document.getElementById("idName");

结果:null或[object HTMLParagraphElement]

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM简介</title>
</head>
<body>
<h2>
<a href="http://www.baidu.com">JavaScript DOM</a>
</h2>
<!--设置P标签的id-->
<p id="con">哒哒哒</p>
<script type="text/javascript">
//通过ID获取元素
var mychar=document.getElementById("con")
document.write("输出:"+mychar)
</script> </body>
</html>

运行结果:

JavaScript DOM

哒哒哒

输出:[object HTMLParagraphElement]

二、通过innerHTML属性修改文本节点

innerHTML 属性用于获取或替换 HTML 元素的内容。

语法:

Object.innerHTML="newtext"

其中Object为获取的元素对象,如通过document.getElementById获取的元素。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM简介</title>
</head>
<body>
<h2>
<a href="http://www.baidu.com">JavaScript DOM</a>
</h2>
<!--设置P标签的id-->
<p id="con">哒哒哒哒哒哒</p>
<script type="text/javascript">
//通过ID获取元素
var mychar=document.getElementById("con")
document.write("修改前:"+mychar.innerHTML+"<br>") //利用<br>实现换行
mychar.innerHTML="尽管科琳双胞胎作为班长" //通过innerHTML属性来修改元素内容
document.write("修改后:"+mychar.innerHTML)
</script> </body>
</html>

运行效果:

JavaScript DOM

尽管科琳双胞胎作为班长

修改前:哒哒哒哒哒哒
修改后:尽管科琳双胞胎作为班长

三、控制类名(className属性)

className 属性设置或返回元素的class 属性。

语法:

object.className = classname
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM简介</title>
<style type="text/css">
.one{
font-size: 20px;
color: red;
}
.two{
font-size: 30px;
color: blue;
}
.three{
font-size: 40px;
color: green;
}
</style>
</head>
<body>
<h2>
<a href="http://www.baidu.com">JavaScript DOM</a>
</h2>
<!--设置P标签的id-->
<p id="con1" class="one">哒哒哒哒哒</p>
<p id="con2" class="two">哈哈哈哈哈</p>
<p id="con3" class="three">嘎嘎嘎嘎嘎</p>
<input type="button" value="点击我,修改样式" onclick="modify()">
<script type="text/javascript">
var mychar=document.getElementById("con1")
function modify(){
//通过.className属性,修改样式
mychar.className="three"
}
</script> </body>
</html>

运行效果:

四、通过Object.style.property修改元素的样式

(1)文本属性

语法:

Object.style.property="new style"

常见样本属性表:



(2)显示或隐藏 
语法:

Object.style.display=value

value取值:

描述
none 此元素将被隐藏
block 此元素将被显示
 
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM简介</title>
</head>
<body>
<h2>
<a href="http://www.baidu.com">JavaScript DOM</a>
</h2>
<!--设置P标签的id-->
<p id="con1">哒哒哒哒哒</p>
<p id="con2">哈哈哈哈哈</p>
<p id="con3">嘎嘎嘎嘎嘎</p>
<script type="text/javascript">
//通过ID获取元素
var mychar1=document.getElementById("con1");
//通过Object.style.property修改元素的样式
mychar1.style.color="red";
mychar1.style.fontSize="20px";
//mychar1.style.background="blue";
//mychar1.style.width="300px"; //此处的width为背景的宽度 //隐藏ID为con2的元素
document.getElementById("con2").style.display="none"
//显示ID为con3的元素
document.getElementById("con3").style.display="block" </script> </body>
</html>

运行效果:

JavaScript DOM

哒哒哒哒哒

嘎嘎嘎嘎嘎

五、getElementsByName()方法

语法:

document.getElementsByName(name)

注意:

1. 因为文档中的 name 属性可能不唯一,所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。

2. 和数组类似也有length属性,可以和访问数组一样的方法来访问,从0开始。

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function getnum(){
//通过document.getElementsByName()查找相同Name的标签
var mynode= document.getElementsByName("myt"); ;
alert(mynode.length);
}
</script>
</head>
<body>
<input name="myt" type="text" value="1">
<input name="myt" type="text" value="2">
<input name="myt" type="text" value="3">
<input name="myt" type="text" value="4">
<input name="myt" type="text" value="5">
<input name="myt" type="text" value="6"> <br />
<input type="button" onclick="getnum()" value="看看有几项?" />
</body>
</html>

运行效果:

区别getElementByID,getElementsByName,getElementsByTagName

<input type="checkbox" name="hobby" id="hobby1">  音乐

其中:ID为“hobby1”,name为“hobby”,tagname为“input”。

参考:https://www.imooc.com

JS -- DOM(文档对象模型)的更多相关文章

  1. javascript之DOM文档对象模型编程的引入

    /* DOM(Document Object Model) 文档对象模型 一个html页面被浏览器加载的时候,浏览器就会对整个html页面上的所有标签都会创建一个对应的 对象进行描述,我们在浏览器上看 ...

  2. JavaScript(三、DOM文档对象模型)

    一.什么是DOM DOM 是 Document Object Model(文档对象模型)的缩写. DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: &q ...

  3. html--JavaScript之DOM (文档对象模型)

    一.简介 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标 ...

  4. DOM文档对象模型简介

    DOM简介     DOM是W3C(万维网联盟)的标准 "W3C文档对象模型DOM是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构.样式".W3C DOM ...

  5. dom文档对象模型图

  6. 文档对象模型 DOM

    1 DOM概述 1.1 什么是DOM 文档对象模型 Document Object Model 文档对象模型 是表示和操作 HTML和XML文档内容的基础API 文档对象模型,是W3C组织推荐的处理可 ...

  7. js DOM Node类型

    DOM(文档对象模型)是针对HTML和XML文档的一个API. DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的.以特定节点为根节点的树形结构.节点分为12种不同的类型,每种类型分别表示 ...

  8. JS DOM操作(一) 对页面的操作

    DOM ——文档对象模型(Document Object Model)是表示和处理一个HTML或XML文档的常用方法. 在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标 ...

  9. js DOM之基础详解

    DOM(文档对象模型)是针对HTML和XML文档的一个API,描绘了一个层次化的节点树,允许开发人员添加.删除和修改页面的某一部分. HTML DOM 树形结构如下: 1.Node方面 1.1 节点类 ...

  10. JavaScript交互式网页设计 • 【第4章 JavaScript文档对象模型】

    全部章节   >>>> 本章目录 4.1 文档对象模型简介及属性 4.1.1 文档对象模型概述 4.1.3 实践练习 4.2 document 对象查找 HTML 元素 4.2 ...

随机推荐

  1. Linux学习笔记 一 第三章 Linux常用命令

    第三章Linux常用命令 一.文件处理命令 1.命令格式 2.目录处理命令:ls 3.目录处理命令:mkdir 4.文件处理命令: touch

  2. 【数论】莫比乌斯反演Mobius inversion

    本文同步发布于作业部落,若想体验更佳,请点此查看原文.//博客园就是渣,连最基本的符号都打不出来.

  3. VM获取子网掩码和网关

  4. bluetoothctl命令提示No default controller available

    在学习bluetoothctl命令时,执行bluetoothctl,然后执行show,提示No default controller available. 1. 执行hciconfig,发现有hci0 ...

  5. Python 判断ip是否属于网段

    import IPy >>>'192.168.1.100' in IPy.IP('192.168.1.0/24') is True >>>'192.168.1.0/ ...

  6. 手把手教Linux驱动2-之模块参数和符号导出

    通过<手把手教Linux驱动1-模块化编程,玩转module>的学习,我们已经掌握了如何向内核加载一个模块,现在我们学习模块之间如何传递参数. 一.给模块传递参数 当我们加载一个模块到Li ...

  7. Locust性能测试1--简介安装及基本使用

    1. Locust简介 Locust是易于使用的分布式用户负载测试工具,旨在对网站(或其他系统)进行负载测试,并弄清一个系统可以处理多少个并发用户,Locust翻译过来是蝗虫的意思,在测试期间,意在一 ...

  8. SPSSAU数据分析思维培养系列2:方法选择篇

    大家好!在上篇文章中,我们一起学习了如何[掌握正确的数据处理思维].在完成数据准备和清理工作后,就要进入到正式分析阶段,而选择什么样的数据分析方法进行分析是关键. 想要进行科学和系统化的数据分析,分析 ...

  9. muduo源码解析8-date类

    date class date:copyable { }: 作用: 此类作用主要是实现年月日和julianDay的互相转换内部最重要的一个数据成员m_julianDayNumber在mymuduo:: ...

  10. 欢迎来到 C# 9.0(Welcome to C# 9.0)【纯手工翻译】

    翻译自 Mads Torgersen 2020年5月20日的博文<Welcome to C# 9.0>,Mads Torgersen 是微软 C# 语言的首席设计师,也是微软 .NET 团 ...