DOM

1,DOM的本质:

DOM可以理解为浏览器把拿到的html代码,结构化一个浏览器能识别并且js可操作的一个模型

当网页被加载时,浏览器会创建页面的文档对象模型

javascript能改变页面中的所有HTML元素
javascrip能改变页面中的所有HTML属性
javascrip能改变页面中的所有CSS样式
javascrip能对页面中的所有事件做出反应
DOM是哪种数据结构
树(DOM树)DOM树形结构
在这里插入图片描述

2.js获取DOM节点的几种方式

document.getElementById();	//id名,
document.getElementsByTagName();	//标签名
document.getElementsByClassName();	//类名
document.getElementsByName();	//name属性值,一般不用
document.querySelector();	//返回与该模式匹配的第一个元素,如果没找到匹配的元素,则返回null
document.querySelectorAll()	//返回与该模式匹配的所有元素,结果为一个类数组

DOM操作

  1. 新增/插入节点
    在这里插入图片描述

查找 HTML 元素

方法描述
document.getElementById(id)通过元素 id 来查找元素
document.getElementsByTagName(name)通过标签名来查找元素
document.getElementsByClassName(name)通过类名来查找元素

改变 HTML 元素

方法描述
element.innerHTML = new html content改变元素的 inner HTML
element.attribute = new value改变 HTML 元素的属性值
element.style.property = new style改变 HTML 元素的样式

添加和删除元素

方法描述
document.createElement(element)创建 HTML 元素
document.removeChild(element)删除 HTML 元素
document.appendChild(element)添加 HTML 元素
document.replaceChild(element)替换 HTML 元素
document.write(text)写入 HTML 输出流

节点树

parentNode 父节点
childNodes 儿子节点(包含空白)
firstChild 第一个儿子节点
lastChild 最后一个儿子节点
nextSibling 下一个相邻节点
previousSibling 上一个 相邻节点

元素树

firstElementChild 第一个元素节点
lastElementChild** 最后一个元素节点
nextElementSibling 下一个相邻元素节点
previousElementSibling 上一个相邻的元素节点
childElementCount 儿子元素节点的个数
children 儿子节点 (不包括空白)
parentElement 父元素节点

节点操作方法

appendChild() 方法可向节点的子节点列表的末尾添加新的子节点

父节点.appendChild(新的子节点);

insertBefore() 方法可在已有的子节点前插入一个新的子节点

父节点.insertBefore(新的子节点,已有的子节点);     // existing现有的

replaceChild() 方法可将某个子节点替换为另一个

父节点.replaceChild(新节点,要替换的节点);

removeChild() 方法指定元素的某个指定的子节点。

var list=document.getElementById("myList");
list.removeChild(list.childNodes[0]);
父节点.removeChild(要删除的子节点)

cloneNode() 方法创建节点的拷贝,并返回该副本。方法克隆所有属性以及它们的值。如果您需要克隆所有后代,请把 deep 参数设置 true,否则设置为 false。

var cln=itm.cloneNode(true); // 拷贝节点
document.getElementById("myList1").appendChild(cln);

创建元素与删除元素

document.createElement() // 创建元素节点
document.createTextNode() // 创建文本节点
document.appendChild(node) // 向子节点的末尾添加新的节点
document.insertBefore(newNode, existNode)// 现有的子元素之前插入一个新的子元素
document.removeChild(node) // 删除一个子元素
document.remove() // IE低版本不兼容 谷歌火狐都能使用 删除目标元素

DOM性能优化

DOM操作非常“昂贵”,尽量避免频繁的DOM操作
对DOM查询做缓存
将频繁操作改为一次性操作
因为操作会造成浏览器的重绘和重排

原文链接 https://blog.youkuaiyun.com/weixin_53687069/article/details/115054869?spm=1001.2014.3001.5501

内容概要:本文档详细介绍了在三台CentOS 7服务器(IP地址分别为192.168.0.157、192.168.0.158和192.168.0.159)上安装和配置Hadoop、Flink及其他大数据组件(如Hive、MySQL、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala)的具体步骤。首先,文档说明了环境准备,包括配置主机名映射、SSH免密登录、JDK安装等。接着,详细描述了Hadoop集群的安装配置,包括SSH免密登录、JDK配置、Hadoop环境变量设置、HDFS和YARN配置文件修改、集群启动与测试。随后,依次介绍了MySQL、Hive、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala和Flink的安装配置过程,包括解压、环境变量配置、配置文件修改、服务启动等关键步骤。最后,文档提供了每个组件的基本测试方法,确保安装成功。 适合人群:具备一定Linux基础和大数据组件基础知识的运维人员、大数据开发工程师以及系统管理员。 使用场景及目标:①为大数据平台建提供详细的安装指南,确保各组件能够顺利安装和配置;②帮助技术人员快速掌握Hadoop、Flink等大数据组件的安装与配置,提升工作效率;③适用于企业级大数据平台的建与维护,确保集群稳定运行。 其他说明:本文档不仅提供了详细的安装步骤,还涵盖了常见的配置项解释和故障排查建议。建议读者在安装过程中仔细阅读每一步骤,并根据实际情况调整配置参数。此外,文档中的命令和配置文件路径均为示例,实际操作时需根据具体环境进行适当修改。
在无线通信领域,天线阵列设计对于信号传播方向和覆盖范围的优化至关重要。本题要求设计一个广播电台的天线布局,形成特定的水平面波瓣图,即在东北方向实现最大辐射强度,在正东到正北的90°范围内辐射衰减最小且无零点;而在其余270°范围内允许出现零点,且正西和西南方向必须为零。为此,设计了一个由4个铅垂铁塔组成的阵列,各铁塔上的电流幅度相等,相位关系可自由调整,几何布置和间距不受限制。设计过程如下: 第一步:构建初级波瓣图 选取南北方向上的两个点源,间距为0.2λ(λ为电磁波波长),形成一个端射阵。通过调整相位差,使正南方向的辐射为零,计算得到初始相位差δ=252°。为了满足西南方向零辐射的要求,整体相位再偏移45°,得到初级波瓣图的表达式为E1=cos(36°cos(φ+45°)+126°)。 第二步:构建次级波瓣图 再选取一个点源位于正北方向,另一个点源位于西南方向,间距为0.4λ。调整相位差使西南方向的辐射为零,计算得到相位差δ=280°。同样整体偏移45°,得到次级波瓣图的表达式为E2=cos(72°cos(φ+45°)+140°)。 最终组合: 将初级波瓣图E1和次级波瓣图E2相乘,得到总阵的波瓣图E=E1×E2=cos(36°cos(φ+45°)+126°)×cos(72°cos(φ+45°)+140°)。通过编程实现计算并绘制波瓣图,可以看到三个阶段的波瓣图分别对应初级波瓣、次级波瓣和总波瓣,最终得到满足广播电台需求的总波瓣图。实验代码使用MATLAB编写,利用polar函数在极坐标下绘制波瓣图,并通过subplot分块显示不同阶段的波瓣图。这种设计方法体现了天线阵列设计的基本原理,即通过调整天线间的相对位置和相位关系,控制电磁波的辐射方向和强度,以满足特定的覆盖需求。这种设计在雷达、卫星通信和移动通信基站等无线通信系统中得到了广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值