【JS】快速入门DOM

简介: 【JS】快速入门DOM

节点树

概述:节点即为标签。节点之间这种关系,我们称之为‘节点树’。因为很想一颗大树扎根。

DOM【document object model】:文档对象模型,你可以理解为是整个节点树最外层‘根元素’。

DOM其实就是JS语言中内置引用类型document对象,DOM对象经常用来操作节点(标签)

比如:操作节点样式、属性、文本等等。

DOM属性

1. <script type="text/javascript">
2. //DOM:常用属性
3. //documentElement:获取到节点树的html标签
4. console.log(document.documentElement);
5. //head:获取到节点树的head标签
6. console.log(document.head);
7. //title:获取到节点title标签的文本
8. console.log(document.title);
9. //body:获取到节点body
10. console.log(document.body);
11.   </script>

DOM方法

  1. getElementById方法:可以通过标签ID选择器获取对应节点。
  2. 一般我们将script标签放在程序最底部。
  3. 不管节点(标签)在网页中嵌套关系如何复杂。都可以通过这个方法获取到。
  4. 注意:标签(节点)在JS当中属于引用类型数据。
1. <script type="text/javascript">
2. //getElementById方法:可以获取到节点树上任意节点
3. //【需要给标签添加id属性,通过id选择器获取】
4. var element = document.getElementById("box");
5. var eleCur = document.getElementById("cur");
6. var eleLi = document.getElementById("me");
7. console.log(element);
8. console.log(eleCur);
9. console.log(eleLi);
10. console.log(typeof element);
11.  </script>

操作节点属性

1. <script type="text/javascript">
2. var div=document.getElementById("box");
3. div.id='box2';
4. console.log(div.id);
5. console.log(div.className);
6.  </script>

box2

cur

操作节点文本

表单元素:value

其他元素:innerHTML

1. <script type="text/javascript">
2. var div=document.getElementById("box");
3. var inp=document.getElementById("inp");
4. console.log(inp.value);
5. console.log(div.innerHTML);
6. inp.value="默认value";
7.  </script>

操作节点样式

  • 行内样式
<div id="box" style="width: 60px;color: red;background-color: aquamarine;">coleak1</div>
  • 内部样式
  • 外部样式(link引入)
1. <script type="text/javascript">
2. var div=document.getElementById("box");
3. console.log(div.style['width']);
4. div.style['width']="900px";
5.  </script>

事件绑定

  • onclick||ondblclick
1. <script type="text/javascript">
2. var div=document.getElementById("box");
3. // div.onclick=function()
4. // {
5. //    alert("我单击了"); 
6. // }
7. div.ondblclick=function()
8. {
9. alert('我双击了');
10. }
11.  </script>
1. <script type="text/javascript">
2. var div=document.getElementById("box");
3. // div.onmouseenter=function()
4. // {
5. //    alert("我进入了"); 
6. // }
7. div.onmouseleaves=function()
8. {
9. alert('我离开了');
10. }
11.  </script>
  • onfocus||onblur
1. <script type="text/javascript">
2. var input=document.getElementById("inp");
3. input.onfocus=function()
4. {
5.     input.style.color='green';
6. }
7. input.onblur=function()
8. {
9.     input.style.color='black';
10. }
11.  </script>
  • onmousedown / onmouseup
1. <script type="text/javascript">
2. var box=document.getElementById("box");
3. box.onmousedown =function()
4. {
5.     box.style.color='green';
6. }
7. box.onmouseup=function()
8. {
9.     box.style.color='black';
10. }
11.  </script>
  • onmousemove
1. <script type="text/javascript">
2. document.onmousedown=function()
3. {
4. document.body.style.background="red";
5. 
6. }
7. document.onmousemove = function()
8. {
9. var R=parseInt(Math.random()*255);
10. var G=parseInt(Math.random()*255);
11. var B=parseInt(Math.random()*255);
12. document.body.style.background="rgb("+R+","+G+","+B+")";
13. }
14. document.onmouseup=function()
15. {
16. document.body.style.background="black";
17. 
18. }
19.  </script>

节点获取方法

  1. document.getElementById
  2. document.getElementsByTagName
  3. document.getElementsByClassName
  4. document.getElementsByName
1. <script type="text/javascript">
2. var arr=document.getElementsByTagName('li');
3. for (var i=0;i<arr.length;i++)
4. {
5.     arr[i].style.color="red";
6. }
7.  </script>

批量添加事件

1. <script type="text/javascript">
2. var arr=document.getElementsByTagName('li');
3. for(var i=0;i<arr.length;i++)
4. {
5.     arr[i].onclick=function()
6.     {
7. this.style.color="red";
8.     }
9. }
10.  </script>

事件对象

  1. 当事件处理函数执行的时候,系统会自动注入实参,我们用形参接受【事件对象】
  2. 在不同浏览器中事件对象是有兼容问题。使用短路语句进行兼容。
1. <script type="text/javascript">
2. //获取节点
3. var div = document.querySelector("div");
4.     div.onclick = function(event){  
5. //对于高级浏览器:谷歌、IE8以上的浏览器---->event
6. //对于低级浏览器:IE8以下的,事件对象作为BOM对象属性
7. var e = event||window.event;
8. console.log(e);
9.     }
10.   </script>

获取鼠标位置

  • screenX||screenY
1. <script type="text/javascript">
2. //获取节点
3. var inn = document.querySelector('.inner');
4. //鼠标在整个网页当中移动
5. document.onmousemove = function(event){
6.      //短路语法进行兼容
7.      var e = event||window.event;
8.          inn.innerHTML  = "screenX:"+ e.screenX + "screenY"+e.screenY;
9.    }
10. </script>
  • pageX||pageY
1. <script type="text/javascript">
2. //获取节点
3. var inn = document.querySelector('.inner');
4. //鼠标在整个网页当中移动
5. document.onmousemove = function(event){
6.      //短路语法进行兼容
7.      var e = event||window.event;
8.          inn.innerHTML  = "screenX:"+ e.screenX + "screenY"+e.screenY+"<br/>";
9.          inn.innerHTML  += "pageX:"+e.pageX +"pageY:"+e.pageY;
10.    }
11. </script>
  • clientX||clinetY
  • offsetX||offsetY
1. <script type="text/javascript">
2. //获取节点
3. var inn = document.querySelector('.inner');
4. //鼠标在整个网页当中移动
5. document.onmousemove = function(event){
6.      //短路语法进行兼容
7.      var e = event||window.event;
8.          inn.innerHTML  = "screenX:"+ e.screenX + "screenY"+e.screenY+"<br/>";
9.          inn.innerHTML  += "pageX:"+e.pageX +"pageY:"+e.pageY+"<br/>";
10.         inn.innerHTML +="clientX"+e.clientX +"clinetY"+e.clientY+"<br/ >";
11.         inn.innerHTML +="offsetX"+e.offsetX +"offsetY"+e.offsetY;
12.    }
13. </script>


目录
相关文章
|
1月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
18天前
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
19天前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
1月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
62 4
|
2月前
|
JavaScript 前端开发 索引
JavaScript HTML DOM 节点列表
JavaScript HTML DOM 节点列表
20 5
|
2月前
|
JavaScript 前端开发 索引
JavaScript HTML DOM 集合(Collection)
JavaScript HTML DOM 集合(Collection)
30 4
|
2月前
|
JavaScript 前端开发 索引
你可能没有听说过 js中的 DOM操作还有这个: HTMLCollection 和 NodeList
该文章详细解释了JavaScript中HTMLCollection和NodeList这两种DOM集合类型的特性、使用方法及其区别,并通过实例代码展示了如何操作这两种集合来选取和遍历DOM元素。
|
2月前
|
JavaScript 前端开发
JavaScript HTML DOM 元素 (节点)
JavaScript HTML DOM 元素 (节点)
28 2
|
2月前
|
XML 移动开发 JavaScript
js中BOM和DOM总结(基础篇)
文章总结了JavaScript的BOM和DOM知识点,包括window、screen、location、history、navigator对象,以及消息框、计时器和cookie。同时,介绍了DOM的概念、节点获取和修改方法,以及事件处理。
js中BOM和DOM总结(基础篇)
|
1月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
38 0