JS基础10-DOM访问HTML方式
一、DOM
1.DOM是文档对象模型(Document Object Model)的简称。当网页加载时,可以将结构化文档在内存中转换成对象的树。
简单的说DOM并不是一种技术,而是一种访问结构化文档的一种思想。借助DOM模型,我们可以对DOM树进行修改、删除、新增等操作,让结构化文档动态化。
DOM模型中的节点——文档可以说是由节点构成的集合。在DOM模型中有以下3种节点:
- 元素节点:各种标签就是这些元素节点的名称,例如<p>、<ul>等
- 文本节点:文本节点总是被包含在元素节点的内部
- 属性节点:一般用来修饰元素节点就称之为属性节点。
二、DOM访问HTML的方式
DOM主要有两种方式来访问HTML。
- 根据ID访问HTML元素:通过document对象调用getElementById()方法来查找具有唯一id属性值的元素。
-
第一种方式<title>无标题文档</title> <style> </style> <script type="text/javascript"> function show(){ var content1=document.getElementById('son1').innerText; var content2=document.getElementById('grandson2').value; var content3=document.getElementById('grandson3').value; var content4=document.getElementsByClassName('grandson4').value; alert(content1+"\n"+content2+"\n"+content3+"\n"+content4); } </script> </head> <body> <div id="oldfather"> <div id="son1"> <span>我是div块</span> </div> <div id="son2"> <textarea name="" id="grandson2" cols="30" rows="10">好好学习,天天向上</textarea> </div> <div id="son3"> <input type="text" id="grandson3" value="上我啊"> </div> <div id="son4"> <input type="button" class="grandson4" value="访问三个元素的内容" onClick="show()"> </div> </div> </body> </html> -
2.利用节点关系访问HTML元素。常用的属性和方法如下:
|
parentNode |
返回当前节点的父节点 |
|
previousSibling |
返回当前节点的前一个兄弟节点 |
|
nextSibling |
返回当前节点的后一个兄弟节点 |
|
childNodes |
返回当前节点的所有子节点 |
|
firstChild |
返回当前节点的第一个子节点 |
|
lastChild |
返回当前节点的最后一个子节点 |
|
getElementsByTagName(tagName) |
返回当前节点的具有指定标签名的所有子节点 |
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>使用节点关系查找HTML元素</title>
<style type="text/css">
/*以赵六为参照物*/
#n4{color:red}
</style>
</head>
<body>
<ul id="names">
<li id="n1">张三</li>
<li id="n2">李四</li>
<li id="n3">王五</li>
<li id="n4">赵六</li>
<li id="n5">小红</li>
<li id="n6">小明</li>
</ul>
<input type="button" value="父节点" onClick="showContent(current.parentNode)">
<input type="button" value="第一个子节点" onClick="showContent(current.parentNode.firstChild.nextSibling)">
<input type="button" value="上一个节点" onClick="showContent(current.previousSibling.previousSibling)">
<input type="button" value="下一个节点" onClick="showContent(current.nextSibling.nextSibling)">
<input type="button" value="最后一个子节点" onClick="showContent(current.parentNode.lastChild.previousSibling)">
<input type="button" value="得到所有li的元素个数" onClick="showCount()">
<script type="text/javascript">
var current=document.getElementById("n4");
function showContent(target){
alert(target.innerHTML);
}
function showCount(){
alert(document.getElementsByTagName("li").length);
}
</script>
</body>
</html>

浙公网安备 33010602011771号