4 JavaScript基础(2)

简介: JavaScript对象:自定义对象、宿主对象、内建对象内建对象: 由ES标准中定义的对象,在所有ES实现中都可以使用[Math、String、Number…]**宿主对象:**由js环境提供的对象,如[BOM、DOM]**自定义对象:**程序员自定义:::

JavaScript对象:自定义对象、宿主对象、内建对象


内建对象: 由ES标准中定义的对象,在所有ES实现中都可以使用[Math、String、Number…]

**宿主对象:**由js环境提供的对象,如[BOM、DOM]

**自定义对象:**程序员自定义

:::


1 DOM对象(文档对象模型:Document Object Model)


1.1 模型图解


15.png


1.2 节点(node):构成HTML最基本的单元,我们把常用节点分为4类


16.png

(1)文档节点:指HTML文档

(2)元素节点:指HTML中标签

(3)属性节点:指元素的属性

(4)文本节点:HTML中文本内容

2 事件


2.1 常用事件


17.png


2.2 常见问题


js绑定节点后发现值是null,无法进行相应的事件操作

如下:

18.png

原因: 代码执行顺序所导致的,因为js位置在页面代码之前加载,此时页面还未加载,所以找不到节点元素,无法进行其他操作

解决方案: 为window绑定一个onload事件,使得页面先加载

案例:

//windows绑定onload事件,使得js代码在页面加载完之后执行
window.onload = function (){
  // 获取button对象
  var buttonT = document.getElementById("btn2");
  // button绑定点击事件
  buttonT.onclick = function(){
  // 更换button文本内容
  buttonT.innerHTML = "buttonTest";
  }
}


2.3 获取元素节点


需要通过document对象获取元素节点


方法名 说明

getElementById() 通过id获取元素节点对象

getElementsByTagName() 通过标签名获取一组,元素节点对象

getElementsByName() 通过name属性获取一组,元素节点对象

案例

需求:做一个图片展示页面,

条件:①有提示语:共多少张图片,此时展示第几张

②通过按钮实现图片切换,当图片到最后一张时再点击下一张跳回第一张,第一张的上一张跳回最后一张

代码:

HTML页面代码:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8">
  <title>DOM模型学习</title>
  <script type="text/javascript" src="js/test2.js"></script>
  <style type="text/css">
    *{
    margin: 0;
    padding: 0;
    }
    #outer{
    width: 600px;
    margin: 60px auto;
    padding: 6px;
    background-color: skyblue;
    text-align: center;
    }
    img{
    width: 600px;
    }
  </style>
  </head>
  <body>
  <div id="outer">
    <span>图片展示:共5张,第1张</span>
    <img src="../JavaScript/img/1.jpg" alt="图片">
    <button id="prev"> 上一张</button>  <button id="next">下一张 </button>
  </div>
  </body>
</html>

js代码

window.onload = function(){
  // 通过id获取元素对象
  var pre = document.getElementById("prev");
  var nex = document.getElementById("next");
  // 定义数组存放图片路径
  var arrayImg = ["../JavaScript/img/1.jpg","../JavaScript/img/2.jpg","../JavaScript/img/3.jpg","../JavaScript/img/4.jpg","../JavaScript/img/5.jpg"];
  // 通过标签获取img元素对象
  var imgTest = document.getElementsByTagName("img")[0];
  var textT = document.getElementsByTagName("span")[0];
  var index = 0;
  nex.onclick = function(){
  index ++;
  if(index>4){
    index = 0;
  }
  imgTest.src = arrayImg[index];
  textT.innerHTML = "图片展示:共"+arrayImg.length+"张,第"+(index+1)+"张";
  } 
  pre.onclick = function(){
  index --;
  if(index<0){
    index = 4;
  }
  imgTest.src = arrayImg[index];
  textT.innerHTML = "图片展示:共"+arrayImg.length+"张,第"+(index+1)+"张";
  }
}


2.4 获取元素节点的相关节点


方法\属性 说明

获取子节点

getElementsByTagName() 方法,通过标签获取节点的子节点

childNodes 属性,获取节点的所有子节点(会获取到空字符)

firstChild 属性,获取节点第一个节点(会获取到空字符)

lastChild 属性,获取节点最后一个节点(会获取到空字符)

获取父节点和兄弟节点

parentNode 属性,获取当前节点父节点

previousSibling 属性,当前节点的前一个兄弟元素(不包含空字符,IE8以下不支持)

nextSibling 属性,当前节点的后一个兄弟节点


目录
相关文章
|
7天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
3243 30
|
6天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
|
2天前
|
云安全 人工智能 安全
|
7天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1440 5
|
云安全 安全 网络安全
|
8天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
|
20天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3571 53
|
12天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。