8_js_dom编程入门2

Objective(本课目标)

  • 掌握基本课堂案例
  • 掌握节点的关系操作

1. 按钮选中案例

  • 课堂案例:1.显示按钮的选中效果.html

  • <!DOCTYPE html>
    <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
    </head><body><button>按钮1</button><button>按钮2</button><button>按钮3</button><button>按钮4</button><button>按钮5</button><script>/* 需求:需要给每个按钮都绑定onclick事件点击当前按钮的时候,把当前按钮的背景色为红色其他按钮的颜色去掉*/const btns = document.querySelectorAll("button")for (const btn of btns) {btn.onclick = function () {//先把所有按钮的样式进行初始化steAllbackgroundColor(btns)this.style.backgroundColor = 'red';}function steAllbackgroundColor(btn) {for (const btn of btns) {btn.style.backgroundColor = '';}}}</script>
    </body></html>

2. 图片轮播案例

  • 课堂案例:2.页面切换背景图片.html

  • <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>*{margin: 0px;padding: 0px;}li{list-style: none;}.bw{margin: 100px auto;background-color: #ffffff;width: 420px;padding-top: 3px;}.bw li{float: left;margin: 0 1px;cursor: pointer;}.bw img{width: 100px;}body{background: url(images/1.png) no-repeat  center top}</style>
    </head>
    <body><ul class="bw"><li><img src="images/1.png" alt=""></li><li><img src="images/2.png" alt=""></li><li><img src="images/3.png" alt=""></li><li><img src="images/4.png" alt=""></li><script>const imgAll = document.querySelectorAll("img")for(const item of imgAll){item.onclick = function(){document.body.style.backgroundImage = 'url('+this.src+')';}}</script>
    </body>
    </html>

3. 表格选中变色案例

  • 课堂案例:3.表格选中变色.html

  • <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>table{width: 700px;margin: 100px auto;text-align: center;font-size: 15px;border-collapse: collapse;}th{height: 40px;background-color: blueviolet;}tr{height: 40px;}td{border-bottom: 1px solid black;height: 40px;font-size: 14px;}.bw{background-color: yellow;   }</style>
    </head>
    <body><table><thead><tr><th>编号</th><th>商品名称</th><th>价格</th><th>库存</th><th>当日出售</th><th>剩余</th></tr></thead><tbody><tr><td>111</td><td>西瓜</td><td>11.5</td><td>555</td><td>15</td><td>333</td></tr><tr><td>222</td><td>苹果</td><td>11.5</td><td>555</td><td>15</td><td>333</td></tr><tr><td>333</td><td>香蕉</td><td>11.5</td><td>555</td><td>15</td><td>333</td></tr><tr><td>444</td><td>桃子</td><td>11.5</td><td>555</td><td>15</td><td>333</td></tr><tr><td>555</td><td>石榴</td><td>11.5</td><td>555</td><td>15</td><td>333</td></tr><tr><td>666</td><td>梨子</td><td>11.5</td><td>555</td><td>15</td><td>333</td></tr></tbody></table><script>const trs = document.querySelectorAll('tr')/* 需求:对每行绑定鼠标移入和移除事件*/for(const tr of trs){tr.onmouseover = function(){//  console.log("鼠标移入")//设置当前tr元素的颜色位bwthis.className = 'bw'}tr.onmouseout = function(){//  console.log("鼠标移出")this.className= '';}}</script>
    </body>
    </html>

4.全选反选

  • 课堂案例:4.全选反选.html

  • <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>* {padding: 0;margin: 0;}.bw {width: 400px;margin: 100px auto 0;}table {border-collapse: collapse;border-spacing: 0;border: 1px solid #c0c0c0;width: 400px;}td {border: 1px solid #5513d16b;padding: 10px;}th {border: 1px solid #d0d0d0a8;background-color: rgb(0, 204, 0);color: #fff;padding: 10px;}tr {background-color: #f0f0f0;}</style>
    </head>
    <body><div class="bw"><table><tr><th><input type="checkbox" id="contro1"  /></th><th>商品</th><th>价格</th></tr><tr><td><input type="checkbox" class="fruit" /></td><td>桃子</td><td>15</td></tr><tr><td><input type="checkbox" class="fruit" /></td><td>猕猴桃</td><td>12</td></tr><tr><td><input type="checkbox" class="fruit" /></td><td>香蕉</td><td>11</td></tr><tr><td><input type="checkbox" class="fruit" /></td><td>枸杞</td><td>22</td></tr></table></div><script>//需求1 :实现全选和和全不选的效果const ctrObj1 = document.querySelector("#contro1")const fruits = document.querySelectorAll(".fruit")ctrObj1.onclick = function(){//checked//当checkbox被选中的时候,chedked=true//当checkbox被取消的时候,checked=falseconsole.dir(ctrObj1.checked)for(const ck of fruits){ck.checked = this.checked;}}//需求2:当所有的元素被选中的时候,全选按钮也需要被选中for(const item of fruits){item.onclick = function(){//假设式全部被选中的let flag = true;for(const ck of fruits){//只要有一个没有被选中的,就把标记修改为falseif(!ck.checked){flag = false;}}ctrObj1.checked =flag;}}</script>
    </body>
    </html>

5. 自定义属性操作

5.1 获取属性值和设置属性值
  • getAttribute() 返回元素上一个指定的属性值。如果指定的属性不存在,则返回 null"" (空字符串);

  • setAttribute() :设置指定元素上的某个属性值。如果属性已经存在,则更新该值;否则,使用指定的名称和值添加一个新的属性。

  • hasAttribute 返回一个布尔值,指示该元素是否包含有指定的属性(attribute)。

    • result 为返回的布尔值:truefalse

    • attName 是一个字符串,表示属性的名称。

  • 课堂案例:5.元素属性的操作.html

5.2 H5自定义属性
  • 只读属性 dataset 提供了对元素上自定义数据属性(data-*)读/写访问。

  • 课堂案例:6.H5自定义属性.html

5.3 案例讲解
  • 课堂案例:7.选项卡切换.html

6. 节点操作

6.1. 节点概述
  • 节点与元素的关系是什么?

  • Element 是一个通用性非常强的基类,所有 Document 对象下的对象都继承自它。这个接口描述了所有相同种类的元素所普遍具有的方法和属性。一些接口继承自 Element 并且增加了一些额外功能的接口描述了具体的行为。

  • Node 是一个接口,各种类型的 DOM API 对象会从这个接口继承。它允许我们使用相似的方式对待这些不同类型的对象;比如,继承同一组方法,或者用同样的方式测试。

  • 节点(Node)的基本属性:

nodeName:返回当前节点的节点名称
nodeType:返点当前节点的类型
nodeValue:返回或设置当前节点的值,只有文本节点才有值,标签元素和属性节点是没有值的。
​
Node.ELEMENT_NODE 1 元素节点
Node.ATTRIBUTE_NODE 2 属性节点
Node.TEXT_NODE 3 文本节点6.2 节点之间的关系
  • 父子关系

  • 兄弟关系

6.3. 获取父节点
  • Node.parentNode:返回指定的节点在 DOM 树中的父节点。

  • parentElement:返回当前节点的父元素节点,如果该元素没有父节点,或者父节点不是一个 DOM 元素,则返回 null

6.4. 获取子节点
  • Node.childNodes :返回包含指定节点的子节点的集合。

  • Element.children:是一个只读属性,返回 一个 Node 的子elements

  • Element.childElementCount 只读属性返回一个无符号长整型数字,表示给定元素的子元素数。

6.5. 获取头尾节点
  • Node.firstChild 只读属性返回树中节点的第一个子节点,如果节点是无子节点,则返回 null

  • Node.lastChild 是一个只读属性,返回当前节点的最后一个子节点。如果父节点为一个元素节点,则子节点通常为一个元素节点,或一个文本节点,或一个注释节点。如果没有子节点,则返回 null

6.6. 获取前后节点
  • Node.nextSibling 是一个只读属性,返回其父节点的 childNodes 列表中紧跟在其后面的节点,如果指定的节点为最后一个节点,则返回 null

  • Node.previousSibling:返回当前节点的前一个兄弟节点,没有则返回null.

6.7. 创建节点和添加节点
  • Node.appendChild() 方法将一个节点附加到指定父节点的子节点列表的末尾处。如果将被插入的节点已经存在于当前文档的文档树中,那么 appendChild() 只会将它从原先的位置移动到新的位置(不需要事先移除要移动的节点)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Upload上传图片,回显图片,编辑图片,限制图片,不显示上传图标,图片放大功能

效果图&#xff1a; 新增、编辑时&#xff1a;限制上传四张&#xff0c;当超过四张隐藏上传图标 图片放大 &#xff1a;效果图 详情&#xff1a;回显时不显示上传图标 页面&#xff1a;template 部分 图片在前端存储&#xff0c;提交时一并给后端 :file-list"repairPlan…

什么是骨传导蓝牙耳机?骨传导耳机原理分析!

骨传导耳机&#xff0c;顾名思义是利用骨传导技术制造而成的一种耳机&#xff0c;也被称之为骨导耳机、骨感耳机、骨传感耳机。 骨传导耳机的传声原理跟传统耳机有所不同&#xff0c;传统耳机通过空气振动将声音传入耳膜&#xff0c;而骨传导耳机是通过人体骨骼将声音直接传递…

c4d怎么建模沙发?

c4d怎么建模沙发&#xff1f;c4d中想要制作一组沙发&#xff0c;该怎么制作三维立体的沙发模型呢&#xff1f;c4d中想要制作一组沙发&#xff0c;该怎么建模沙发呢&#xff1f;下面我们就来看看c4d创建沙发模型的教程。 1、打开软件&#xff0c;点击立方体&#xff1b; 2、修改…

vue2、vue3状态管理之vuex、pinia

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、状态管理之vuex1.1 State调用&#xff1a;1.2 Mutation在vuex中定义&#xff1a;在组件中使用&#xff1a; 1.3 Action在vuex中定义&#xff1a;将上面的减…

FPGA-AMBA协议、APB协议、AHB规范、AXI4协议规范概述及它们之间的关系

FPGA-AMBA协议、APB协议、AHB协议、AXI&#xff14;协议规范概述 笔记记录&#xff0c;AMBA协议、APB协议、AHB规范、AXI&#xff14;协议规范概述&#xff0c;只是概述描述&#xff0c;具体详细的协议地址传输、数据传输等内容将在下一章节详细说明。 文章目录 FPGA-AMBA协议…

【目标跟踪】解决多目标跟踪遮挡问题

文章目录 前言一、判定遮挡目标二、扩展目标框三、结论 前言 目标跟踪在发生遮挡时&#xff0c;极其容易发生Id Switch。网上许多算法忽视跟踪遮挡问题,同时网上相关资料也很少。博主为了解决跟踪遮挡&#xff0c;翻阅大量论文。分享其中一篇论文。论文链接&#xff1a;https:…

Everything 搜索

正则表达式Regex 首先需要开启 Everything 工具在&#xff08;字符串&#xff09;查找时&#xff0c;对正则表达式功能的支持&#xff1a; 需要在【菜单栏】⇒ 【Search】⇒ 勾选【Enable Regex】 查看Everything 支持的语法:

怎么下载landsat 8影像并在ArcGIS Pro中进行波段组合

Landsat 8&#xff08;前身为Landsat数据连续性任务&#xff0c;或 LDCM&#xff09;于2013年2月11日由 Atlas-V火箭从加利福尼亚州范登堡空军基地发射升空&#xff0c;这里为大家介绍一下该数据的下载的方法&#xff0c;希望能对你有所帮助。 注册账号 如果之前已经注册过的…

基于采样的自动驾驶规划算法 - PRM,RRT,RRT*,CL-RRT

本文将讲解PRM&#xff0c;RRT&#xff0c;RRT*自动驾驶规划算法原理&#xff0c;不正之处望读者指正 0 前言 机器人运动规划的基本任务&#xff1a;从开始位置到目标位置的运动 &#xff08;1&#xff09;如何躲避构型空间出现的障碍物 &#xff08;2&#xff09;如何满足机器…

SkyWalking UI 修改发布Nginx

文章目录 SkyWalking UI修改图标修改路由发布到Nginx添加认证修改路由模式vite.config.ts添加baseNginx配置 SkyWalking UI skywalking-booster-ui下载地址 修改图标 替换 logo.svg 修改路由 router - data - index.ts 发布到Nginx 添加认证 # 安装 yum install -y h…

VMware ESXi常用查看RAID和磁盘信息工具及命令汇总

一、Esxcli 使用 Esxcli 命令可获取有关 vSAN 的信息&#xff0c;以及对您的 vSAN 环境进行故障排除。 可用命令如下&#xff1a; 命令描述esxcli vsan network list确认哪些 VMkernel 适配器可用于 vSAN 通信。esxcli vsan storage list列出由 vSAN 声明的存储磁盘。esxcli…

Pikachu靶场 “Http Header”SQL注入

1. 先在 pikachu 打开 Http Header 注入模块&#xff0c;点击提示 查看登录 账号 和 密码&#xff0c;登陆后去 Burp 中找到登陆的 GET请求 2. 设置payload1 &#xff1a;在 User-Agent最后 输入 查看 数据库名 or updatexml(1,concat(0x7e,database()),0) or 查看 用户名…

随机梯度辨识方法

Matlab 利用随机梯度方法进行辨识的举例&#xff0c;可以结合不同情况进行优化处理&#xff08;例如需要复现文献中结果&#xff09; Matlab代码如下&#xff1a; clc;clear;close; format short g; M Stochastic gradient method; sigma 0.5; % Noise standard deviati…

asp.net core 教程

asp.net core 教程 写在前面新建项目Get和PostGETPOST MVC-模型控制视图如何通俗理解MVCMVC架构---文件夹详解Connected ServicesPropertieswwwroot依赖项ControllersModelsViews 代码实例 API模型&#xff08;前后端分离&#xff09;前端代码后端代码 文件配置优先级优先级顺序…

YOLOv5改进 | 主干篇 | 利用MobileNetV3替换Backbone(轻量化网络结构)

一、本文介绍 本文给大家带来的改进机制是MobileNetV3&#xff0c;其主要改进思想集中在结合硬件感知的网络架构搜索&#xff08;NAS&#xff09;和NetAdapt算法&#xff0c;以优化移动设备CPU上的性能。它采用了新颖的架构设计&#xff0c;包括反转残差结构和线性瓶颈层&…

dev express 15.2图表绘制性能问题(dotnet绘图表)

dev express 15.2 绘制曲线 前端代码 <dxc:ChartControl Grid.Row"1"><dxc:XYDiagram2D EnableAxisXNavigation"True"><dxc:LineSeries2D x:Name"series" CrosshairLabelPattern"{}{A} : {V:F2}"/></dxc:XYDi…

嵌入式-stm32-SR04超声波测距介绍及实战

一&#xff1a;超声波传感器介绍 1.1、SR04超声波测距硬件模块 1.2、SR04的四个IO口 vcc:提供电源5V gnd:接地 Trig:是**发送**声波信号的触发器 Echo:是**接收**回波信号的引脚 当TRIG信号被触发时&#xff0c;传感器会发送一定频率的声波信号&#xff0c;该信号被反射后&am…

Android中_Service生命周期和AMS流程的创建

Service生命周期可以结合Android生命周期分析。 Service生命周期可以从两种启动Service的模式开始讲起&#xff0c;分别是context.startService()和context.bindService()。 Service的生命周期与启动和绑定状态相关。当调用startService()方法启动服务时&#xff0c;会执行onS…

【DeepLearning】Deep Residual Learning for Image Recognition恺神大作学习

[TOC] Deep Residual Learning for Image Recognition 论文 1. 文章主要想解决什么问题&#xff0c;用了什么方法 深度神经网络在训练过程中的3个关键问题&#xff1a; 梯度消失/爆炸问题&#xff1a;随着网络层数的增加&#xff0c;梯度在反向传播过程中可能会变得非常小&a…