document对象(DOM)–认识DOM

document对象(DOM)–认识DOMdocument对象(DOM)–认识DOM文档对象模型DOM(DocumentObjectModel)定义访问和处理HTML文档的标准方法。DOM将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。HTML文档可以说由节点构成的集合,DOM节点有:1.元素节点:<html>、<body>、<p>等都是元素节点,即标签。2.文本节…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

document对象(DOM)–认识DOM

文档对象模型DOM(Document Object Model)定义访问和处理 HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文 本的树结构(节点树)。

HTML文档可以说由节点构成的集合,DOM节点有:

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

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

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

节点属性:

属性 说明
nodeName 返回一个字符串,其内容是给定节点的名字
nodeType 返回一个整数,这个数值代表节点的类型
nodeValue 返回给定节点的当前值

遍历节点树:

方法 说明
childNodes 返回一个数组,这个数组又指定元素节点的子节点构成
firstChild 返回第一个子节点
lastChild 返回最后一个子节点
parentNode 返回一个给定节点的父节点
nextSibling 返回给定节点的下一个节点 (兄弟节点)
prevousSibling 返回给定节点的上一个节点(兄弟节点)
   <!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript"> window.onload = function(){ 
     // 1.1 通过ID获取元素对象 document.getElementById("icon").style.color = "red"; // 1.2 通过指定名称 获取节点对象的集合 var name = document.getElementsByName("baidu"); console.log(name.length) name[0].style.color = "pink" // 1.3 通过指定标签名的 节点对象的集合 var tag = document.getElementsByTagName("a") console.log(tag.length) tag[1].style.color = "green" // 1.4 通过类名的 节点对象的集合 var class_name = document.getElementsByClassName("class_a"); console.log(class_name.length) class_name[2].style.color = "aqua" //2.1 通过innerHTML 获取或替换HTML的内容 var inner = document.getElementById("inner"); console.log(inner.innerHTML) inner.innerHTML = "<p>new innerHTML</p>" console.log(inner.innerHTML) console.log(inner.innerText) inner.innerText = "innerText" console.log(inner.innerText) //2.3 改变HTML的样式 var changeStyle = document.getElementById("changeStyle") changeStyle.style.color = "red"; changeStyle.style.height = "100px"; changeStyle.style.width = "400px"; changeStyle.style.backgroundColor = "peachpuff"; changeStyle.style.fontSize = "30px"; changeStyle.style.borderRadius = "50px"; changeStyle.style.textAlign = "center"; changeStyle.style.lineHeight = "100px"; //2.9 访问节点 var ul_childnodes = document.getElementById("ul") //console.log(ul_childnodes.childNodes) //ul 的所有子节点 // id = "ul" 的节点名称 为ul ,节点类型为1(元素) console.log("访问节点 ul") console.log(ul_childnodes.nodeName) // ul节点名称 console.log(ul_childnodes.nodeType) // ul节点类型 console.log(ul_childnodes.nodeValue) // 此结果为null console.log(ul_childnodes) // 打印ul的内容 // 访问 ul 的子节点 console.log("访问 ul 的子节点") console.log(ul_childnodes.firstChild) //第一个子节点 console.log(ul_childnodes.lastChild) //最后一个子节点 console.log(ul_childnodes.childNodes) //所有子节点 console.log(ul_childnodes.childNodes[1].nodeType) //ul 下的第二个节点类型 console.log(ul_childnodes.childNodes.length)//子节点个数 console.log(ul_childnodes.childNodes[1].nodeValue) //访问 ul 的父节点 console.log("访问 ul 的父节点") console.log(ul_childnodes.parentNode) console.log(ul_childnodes.parentNode.nodeName) console.log(ul_childnodes.parentNode.nodeType) console.log(ul_childnodes.parentNode.nodeValue) console.log(ul_childnodes.parentNode.parentNode) console.log(ul_childnodes.parentNode.parentNode.parentNode) //访问 ul 里的 li 的兄弟节点 console.log("访问 ul 里的 li 的兄弟节点") console.log(ul_childnodes.childNodes) console.log(ul_childnodes.childNodes[1].nextSibling) console.log(ul_childnodes.childNodes[1].nextSibling.nodeName) console.log(ul_childnodes.childNodes[1].previousSibling) var x = document.getElementsByTagName("li")[0] console.log(x.nodeName) //找到li 的节点类型为1的兄弟节点. var y = get_nextSibling(x) console.log("找到li 的节点类型为1的兄弟节点: "+y.nodeType) // 创建元素节点createElement() ,将其添加到 ul 中 var input = document.createElement("input") input.type = "button" input.value = "创建了一个按钮" ul_childnodes.appendChild(input) //也可以用setAttribute来设置属性 var input2 = document.createElement("input") input2.setAttribute("type","button") input2.setAttribute("value","利用setsetAttribute创建的按钮") input2.setAttribute("onclick","javascript:alert('创建又一个按钮');") ul_childnodes.appendChild(input2) //appendChild(newnode) 在指定节点的最后一个子节点列表之后添加一个新的子节点。 //创建文本节点 createTextNode() (先创建一个元素节点,再在元素节点里添加文本节点) var div = document.createElement("div") div.setAttribute("className","name"); var text = document.createTextNode("hello 我是新创建的文本节点") div.appendChild(text) //insertBefore() 方法可在已有的子节点前插入一个新的子节点。 //insertBefore(newnode,node); //ul_childnodes.appendChild(div) first = ul_childnodes.childNodes[2] ul_childnodes.insertBefore(div,first) console.log(div) console.log(div.getAttribute("className")) console.log(ul_childnodes) //删除节点removeChild() --从子节点列表中删除某个节点 var nei = ul_childnodes.removeChild(ul_childnodes.childNodes[1]) console.log(ul_childnodes) console.log(ul_childnodes.childNodes[0]) //替换 console.log(ul_childnodes.childNodes[3]) ul_childnodes.replaceChild(ul_childnodes.childNodes[5],ul_childnodes.childNodes[3]) } function get_nextSibling(n){ 
     var x = n.nextSibling; while(x.nodeType != 1){ 
     console.log(x.nodeName) console.log(x.nodeType) x = x.nextSibling } return x; } function Hidden(){ 
     var changeStyle = document.getElementById("changeStyle") changeStyle.style.display = "none" } function show(){ 
     var changeStyle = document.getElementById("changeStyle") changeStyle.style.display = "block" } function changeClass(){ 
     //控制类名(className属性) var one = document.getElementById("one") console.log("控制类名,中id 为 one 的class值为: "+one.className) one.className = "xiugai" console.log("控制类名,修改后 的class值为: "+one.className) } function reset(){ 
     //控制类名(className属性) var one = document.getElementById("one") one.className = "name" console.log("控制类名,复原后 的class值为: "+one.className) } function haveAttribute(){ 
     //2.6 getAttribute()方法 通过元素节点的属性名称获取属性的值。 var getA = document.getElementById("one") console.log(getA.getAttribute("class")) // setAttribute()方法 getA.setAttribute("title","增加") console.log(getA.getAttribute("width")) console.log(getA.getAttribute("title")) } </script>
	</head>
	<body>
		<!-- 1. 获取元素 -->
		<!-- 1.1 通过ID获取元素 -->
		<div id="icon">
			1.1 通过ID获取元素
		</div>
		<!-- 1.2 通过name过去 -- 指定名称节点对象 || 指定标签 -->
		<div class="name" id="one" width="500px">
			<a name="baidu" class="class_a" href="https://www.baidu.com">百度</a>
			<a name="baidu" class="class_a" href="https://www.baidu.com">百度</a>
			<a name="baidu" class="class_a" href="https://www.baidu.com">百度</a>
			<button type="button" onclick="changeClass()">修改类名</button>
			<button type="button" onclick="reset()">复原</button>
			<button type="button" onclick = "haveAttribute()">获取属性值</button>
			
		</div>
		<!-- 2.1 通过innerHTML 获取或替换HTML的内容 语法: Object.innerHTML Object 为获取元素的对象,所以需要通过ID。 -->
		<div id="inner">
			<h1 class="in">innerHTML</h1>
		</div>
		<!-- 2.3 改变HTML的样式 -->
		<div id="changeStyle">
			2.3 改变HTML的样式
		</div>
		<!-- 2.4 隐藏 和 显示 -->
		<button type="button" onclick="Hidden()">隐藏</button>
		<button type="button" onclick="show()">显示</button>
		
		
		<!-- 2.8 访问节点 -->
		<div class="jiedian">
			<ul id="ul">
				<li>aaaaa</li>
				<li>bbbbb</li>
				<li>ccccc</li>
			</ul>
		</div>
	</body>
	<!-- <script type="text/javascript"> document.getElementById("icon").style.color="red"; </script> -->
</html>


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194889.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 继承是什么_java中继承指的是什么

    java 继承是什么_java中继承指的是什么java中继承指的是什么发布时间:2020-08-2014:46:11来源:亿速云阅读:55作者:小新这篇文章将为大家详细讲解有关java中继承指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。java中继承是什么?Java中的继承是一个对象获取父对象的所有属性和行为的机制。它是面向对象编程系统(OOP)的重要组成部分。Java中继承的思想是,创建基于现…

    2022年7月7日
    23
  • java递归和迭代_Java中的迭代与递归

    java递归和迭代_Java中的迭代与递归递归提到迭代,不得不提一个数学表达式:n!=n*(n-1)*(n-2)*…*1有很多方法来计算阶乘。有肯定数学基础的人都知道n!=n*(n-1)!因而,代码的实现可以直接写成:代码一intfactorial(intn){if(n==1){return1;}else{returnn*factorial(n-1);}}在执行以上代码的时候,其实机器是要执行一系列乘法的:…

    2022年7月13日
    17
  • windows copy命令详解

    windows copy命令详解将一份或多份文件复制到另一个位置 COPY D V N Y Y Z A B source A B source A B destination A B source 指定要复制的文件 A 表示一个 ASCII 文本文

    2025年7月31日
    5
  • pytest fixtures_pytest allure

    pytest fixtures_pytest allurefixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

    2022年7月29日
    7
  • 16进制浮点数的表示方法

    16进制浮点数的表示方法16进制浮点数的表示方法,根据IEEE的标准,分为32位和64位两种,参数分别如下:             符号位     指数位           尾数位           指数偏移量 32位    1[31]    8[23-30]        23[0-22]          127  64位    1[63]    11[52-62]   

    2022年6月22日
    171
  • p4merge_p42排列组合公式

    p4merge_p42排列组合公式P5641【CSGRound2】开拓者的卓识https://www.luogu.com.cn/problem/solution/P5641经典的讨论贡献的题目,如果一层一层展开就太暴力了,我们直接考虑每个数被计算了多少次,那么应该是它的左边放k-1个左括号,右边放k-1个右括号的方案数,然后就可以组合数计算了,然后发现对于每个r它所对应的答案是一个卷积的形式,所以我们可以直接ntt一次就可以求出所有答案。…

    2025年8月10日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号