hml/dhtml

本文详细介绍了DOM(文档对象模型)的概念及其在HTML中的应用。通过树形结构的方式解释了DOM的节点与节点之间的关系,并提供了创建、操作节点的方法,以及如何通过JavaScript访问这些节点。

DOM对象

由于DOM(文档对象模型)概念的推出,这个API使HTML如虎添翼,但是有些学DHTML的朋友还是有些困挠,只是因为目前的手册的书写不太科学,是按字母来分的,不便查阅.其实DOM中最关键是要掌握节点与节点之间的关系(between node and node),想学习DHTML中的DOM千万不要从头到尾地看遍所有的属性和方法,你有三国时张松的"过目不忘"的本领吗?没有吧,那就听我分析一下:

其实DOM教给我们的就是一个层次结构,你可以理解为一个树形结构,就像我们的目录一样,一个根目录,根目录下有子目录,子目录下还有子目录……

根节点:


DOM把层次中的每一个对象都称之为节点(NODE),以HTML超文本标记语言为例:整个文档的一个根就是<html>,在DOM中可以使用document.documentElement来访问它,它就是整个节点树的根节点(ROOT)

子节点:

一般意义上的节点,根节点以下最大子节点就是主文档区<body>了,要访问到body标签,在脚本中应该写:
document.body
body区以内所有的文本及HTML标签都是文档的节点,分别称为文本节点、元素节点(或者叫标签节点),大家知道HTML说到底只是文本而矣,不论怎么样的网页必然由这两个节点组成,也只能由这两个节点组成

节点之间的关系:

节点之间的关系也是DOM中最重要的一个关节,如何正确地引用到节点对象,一定要清楚节点树各个节点的相互描述方式,在DHTML里,Javascript脚本就用了各个节点对象的一整套方法和属性去描述另外的节点对象。


节点的绝对引用:
返回文档的根节点
document.documentElement
返回当前文档中被击活的标签节点
document.activeElement
返回鼠标移出的源节点
event.fromElement
返回鼠标移入的源节点
event.toElement
返回激活事件的源节点
event.srcElement

节点的相对引用:(设当前对节点为node)
返回父节点
node.parentNode
node.parentElement
返回子节点集合(包含文本节点及标签节点)
node.childNodes
返回子标签节点集合
node.children
返回子文本节点集合
node.textNodes
返回第一个子节点
node.firstChild
返回最后一个子节点
node.lastChild
返回同属下一个节点
node.nextSibling
返回同属上一个节点
node.previousSibling

节点的各种操作:(设当前的节点为node)

新增标签节点句柄:
document.createElement(sNode) //参数为要新添的节点标签名,例:newnode=document.createElement("div");

1、添加节点:
追加子节点:
node.appendChild(oNode) //oNode为生新增的节点句柄,例:node.appendChild(newnode)
应用标签节点
node.applyElment(oNode,sWhere)//oNode为生新增的节点句柄,sWhere有两个值:outside / inside,加在当前节点外面还是里面
插入节点
inode.insertBefore()
node.insertAdjacentElement()
node.replaceAdjacentText()

2、修改节点:

删除节点
node.remove()
node.removeChild()
node.removeNode()

替换节点
node.replaceChild()
node.replaceNode()
node.swapNode()


2、复制节点:
返回复制复制节点引用
node.cloneNode(bAll)//bAll为布尔值,true / false 是否克隆该节点所有子节点

3、节点信息
是否包含某节点
node.contains()
是否有子节点
node.hasChildNodes() 

 

<think>好的,用户想了解HML相关内容,特别是HML文件格式或HML编程语言。首先,我需要确认用户提到的HML具体指的是什么。HML可能有多种含义,比如HarmonyOS Markup Language、HTML的变种,或者是其他领域的专用格式。 根据用户提供的引用内容,特别是引用[2]中提到“模板文件templates/webcoding/codit.hml”,以及其中涉及的前端代码如codemirror编辑器和语法高亮,这很可能与华为的HarmonyOS开发相关。因为HarmonyOS的UI开发使用HML(HarmonyOS Markup Language)作为标记语言,结合CSS和JavaScript进行界面设计,类似Web开发中的HTML。因此,用户提到的HML应该是指HarmonyOS Markup Language。 接下来需要验证这一点。查阅引用中的信息,引用[2]提到了HML文件用于Web开发模板,结合codemirror编辑器,这与HarmonyOS的HML用途相符。此外,引用[3]提到DevEco工具中的HVD Manager问题,而DevEco是华为的集成开发环境,用于HarmonyOS应用开发,这也支持HML属于HarmonyOS的结论。 进一步分析,HML在HarmonyOS中的作用类似于HTML,用于定义页面结构,配合CSS和JS实现动态效果。需要向用户说明HML的基本结构、语法特点以及与HTML的区别,例如标签可能不同,数据绑定方式等。同时,用户可能想知道如何开始使用HML进行开发,是否需要特定工具如DevEco,以及相关文档资源。 还需要考虑用户可能的深层需求,比如是否有具体的开发问题,或者对HML与其他技术的比较感兴趣。根据引用[2]中的代码示例,用户可能涉及表单提交和语法高亮,可以建议查阅华为官方文档或社区资源获取更多示例和最佳实践。 最后,生成相关问题时应围绕HML的应用场景、语法细节、开发工具和资源等方面,帮助用户深入学习和解决问题。</think>### HML文件格式与编程语言说明 HML(HarmonyOS Markup Language)是华为鸿蒙操作系统(HarmonyOS)中用于构建用户界面的标记语言,类似于Web开发中的HTML。其特点包括: 1. 与CSS和JavaScript配合使用,实现界面布局与逻辑分离; 2. 支持声明式语法和数据绑定; 3. 通过轻量级组件库构建跨设备界面。 #### 典型HML文件结构示例 ```hml <div class="container"> <text class="title">当前温度: {{ temperature }}°C</text> <input type="button" value="刷新数据" @click="refreshData"/> </div> ``` 对应的JS逻辑文件: ```javascript export default { data: { temperature: 25 }, refreshData() { this.temperature = Math.floor(Math.random() * 10 + 20) } } ``` 此示例展示了数据绑定`{{ temperature }}`和事件绑定`@click`的用法[^2]。 #### 开发工具链 - **IDE支持**:需使用DevEco Studio(鸿蒙专用IDE) - **调试工具**:HVD Manager模拟器(需注意运行环境配置[^3]) - **编译流程**:HML → AST → 虚拟DOM → 原生组件渲染
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值