JavaScript基础——HTML DOM (文档对象模型)

简介: JavaScript基础——HTML DOM (文档对象模型)

DOM文档对象模型

文档  --文档表示的就是整个HTML网页文档


对象  --对象表示将页面中的每一部分都转换为了一个对象


模型  --使用模型来表示对象之间的关系,这样方便我们来获取对象


HTML DOM 模型被构造为对象的树:

image.png



节点

image.png




如何查找 HTML 元素

document节点找到元素

document.getElementById();      //通过元素id找到一个HTML元素节点对象
document.getElementsByTagName();   //通过元素标签名找到一组HTML元素节点对象
document.getElementsByNama();    //通过name属性找到一组HTML元素节点对象

DOM查询

//document中有一个body属性 ,他保存的是bady的引用
//document.documentElement保存的是html根标签
//document.all代表页面中的所有元素
var body =document.body;
var html =document.documentElement
var all = document.all;
document.getElementsByClassName("");

DOM添加

document.getElementById()   // 获取某document中的子节点
document.createTextNode()   // 创建新节点中的文本
document.createElement()       //创建新节点
父节点.appendChild(li);  //添加子节点
子节点.parentNode()    //获取父元素
父节点.removeChild ()        //删除节点
父节点.replaceChild     //替换子节点

事件

事件就是文档或浏览器窗口中发生的一些特定的交互瞬间


Javascript与HTML之间的交互是通过事件实现的。Javascript中常见的事件已在之前的博客中说到


事件对象event


当事件的响应函数被触发时、浏览器每次都会将一个事件对象作为实参传递进响应函数。在事件对象中封装了当前事件相关的一切系信息,比如鼠标的坐标、那个按键被按下、滚轮的移动


<script type="text/javascript">
/*
*键盘控制使div根据不同方向移动
*/
  window.onload = function(){
      document.onkeydown = function(event){
      event=event || window.event;
      console.log(event.keyCode);
      switch(event.keyCode){
          case 37 :
          //alert("向左");
    box1.style.left=box1.offsetLeft -10 +"px";
    break;
    case 39 :
    //alert("向右");
    box1.style.left=box1.offsetLeft +10 +"px";
    break;
    case 38 :
    //alert("向上");
    box1.style.top=box1.offsetTop -10 +"px";
    break;
    case 40 :
    //alert("向下");
    box1.style.top=box1.offsetTop +10 +"px";
    break;
    }
  };
  };
</script>

事件的冒泡(Bubble)


所谓事件的冒泡就是事件的向上传导,当后代元素上的事件被触发时,父代的相同事件也会被触发!


事件的委派


将事件统一绑定给元素共同的祖先元素,这样当后代元素上的事件被触发时,会一直冒泡到祖先元素,从而通过祖先元素的响应函数来处理事件。


事件的委派利用了冒泡,通过委派可以减少事件绑定的次数,提高程序的性能。

相关文章
|
4天前
|
JavaScript 前端开发 数据可视化
Three.js第2篇,加载glb / gltf模型,Vue加载glb / gltf模型(如何在vue中使用three.js,vue使用threejs加载glb模型)
Three.js 是一个用于在 Web 上创建和显示 3D 图形的 JavaScript 库。它提供了丰富的功能和灵活的 API,使开发者可以轻松地在网页中创建各种 3D 场景、模型和动画效果。可以用来展示产品模型、建立交互式场景、游戏开发、数据可视化、教育和培训等等。这里记录一下如何在Vue项目中使用Three.js
36 4
Three.js第2篇,加载glb / gltf模型,Vue加载glb / gltf模型(如何在vue中使用three.js,vue使用threejs加载glb模型)
|
4天前
|
前端开发 JavaScript TensorFlow
如何将训练好的Python模型给JavaScript使用?
本文介绍了如何将TensorFlow模型转换为Web格式以实现浏览器中的实际应用。首先,简述了已有一个能够检测扑克牌的TensorFlow模型,目标是将其部署到Web上。接着,讲解了TensorFlow.js Converter的作用,它能将Python API创建的GraphDef模型转化为TensorFlow.js可读取的json格式,用于浏览器中的推理计算。然后,详细说明了Converter的安装、用法及不同输入输出格式,并提供了转换命令示例。最后,文中提到了模型转换后的实践步骤,包括找到导出的模型、执行转换命令以及在浏览器端部署模型的流程。
17 3
|
4天前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
10 2
|
4天前
|
XML JavaScript 数据格式
Beautiful Soup 库的工作原理基于解析器和 DOM(文档对象模型)树的概念
【5月更文挑战第10天】Beautiful Soup 使用解析器(如 html.parser, lxml, html5lib)解析HTML/XML文档,构建DOM树。它提供方法查询和操作DOM,如find(), find_all()查找元素,get_text(), get()提取信息。还能修改DOM,添加、修改或删除元素,并通过prettify()输出格式化字符串。它是处理网页数据的利器,尤其在处理不规则结构时。
38 2
|
4天前
|
前端开发 JavaScript UED
JavaScript 的事件循环机制是其非阻塞 I/O 模型的核心
【5月更文挑战第9天】JavaScript的事件循环机制是其非阻塞I/O的关键,通过单线程的调用栈和任务队列处理异步任务。当调用栈空时,事件循环从任务队列取出一个任务执行,形成循环。异步操作完成后,回调函数进入任务队列,等待被事件循环处理。微任务如Promise回调在每个宏任务结束后执行。此机制确保JavaScript能高效处理异步操作,不阻塞主线程,提供流畅的用户体验。
12 2
|
4天前
|
数据采集 数据挖掘 Python
Python之html2text: 将HTML转换为Markdown 文档示例详解
Python之html2text: 将HTML转换为Markdown 文档示例详解
10 0
|
4天前
|
JavaScript 前端开发 安全
javascript操作DOM的方法
javascript操作DOM的方法
14 0
|
4天前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
|
4天前
|
前端开发 JavaScript 数据安全/隐私保护
前端javascript的DOM对象操作技巧,全场景解析(二)
前端javascript的DOM对象操作技巧,全场景解析(二)
|
4天前
|
移动开发 缓存 JavaScript
前端javascript的DOM对象操作技巧,全场景解析(一)
前端javascript的DOM对象操作技巧,全场景解析(一)