dom节点及对节点的常用操作方法

dom节点及对节点的常用操作方法

在说dom节点前,先来看看页面的呈现:
dom渲染流程:
1、浏览器解析html源码,然后创建一个DOM树。
在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的节点(文本节点)。DOM树的根节点就是documentElement,对应的是html标签。

2、浏览器解析CSS代码,计算出最终的样式数据。
对CSS代码中非法的语法它会直接忽略掉。解析CSS的时候会按照如下顺序来定义优先级:浏览器默认设置,用户设置,外联样式,内联样式,html中的style(嵌在标签中的行间样式)。

3、创建完DOM树并得到最终的样式数据之后,构建一个渲染树。
渲染树和DOM树有点像,但是有区别。DOM树完全和html标签一一对应,而渲染树会忽略不需要渲染的元素(head、display:none的元素)。渲染树中每一个节点都存储着对应的CSS属性。

4、当渲染树创建完成之后,浏览器就可以根据渲染树直接把页面绘制到屏幕上。

那我们的节点大致是12种:
我们平常可见的也就文本节点,属性节点,元素节点,注释节点等…
先来看看获取节点:
childNodes:获取元素下的所有节点:返回一个数组
var box_ele = document.getElementById(“box”);
var child_nodes = box_ele.childNodes;
nodeType:辨别元素的类型
1=> 元素节点
2=> 属性节点
3=》 文本节点
4…
nodeValue:获得文本节点的值

children:获取元素下的所有元素节点:返回一个数组
var box_ele = document.getElementById(“box”);
var child_nodes = box_ele.children;

一般而言,我们多用childr。
nodeName:判定元素的类型 返回标签的大写 如:DIV SPAN等.

另外的获取:关系型节点获取
子集类:
firstChild:第一个子节点
firstElementChild:第一个元素子节点
lastChild:最后一个子节点
lastElementChild:最后一个元素子节点

兄弟类:
nextSibling:下一个节点
nextElementSibling:下一个元素节点
previousSibling:上一个节点
previousElementSibling:上一个元素节点

父级类:
parentNode:父节点

特别注意的:
属性节点:
由于属性都是在元素里边的,所以属性节点获取一定是在元素节点之上。
var box_ele = document.getElementById(“box”);
var attributes = box_ele.attributes;

这里的attributes是一个数组:
属性分为属性和属性值:
那我们可以通过之前的nodeType,nodeName,nodeValue来看看attributes里的内容:
如:
attributes[0].nodeType
attributes[0].nodeName
attributes[0].nodeValue

以上是对节点的获取,下面看一看对节点的操作:
首先看看如何穿创建一个节点;
var ele = document.createElement(“div”);
创建一个div节点
ele.innerHTML = “你好世界”;
加入内容,再放入页面中:
如何放入呢?
ele.appendChild(node) 把node节点插入到box的内部最后的位置
ele.insertBefore(newNode, existNode) 在box内,把newNode节点插入到exsitNode的前面
通过appendChild或者insertBefore都可以!

再来看看如何删除:
removeChild():这个方法需要找到父节点再删除:
box.parentNode.removeChild(box);
box.remove();
remove:直接删除!但:兼容极差。

节点的克隆
cloneNode():克隆当前层,不会深层次克隆。
cloneNode(true):整层及以下都克隆。

最后就是节点替换了:
obj.replaceChild(新添加的节点 , 被替换的节点) 替换子节点

内容概要:本文介绍了基于Python实现的k-means-ELM(k均值聚类结合极限学习机)多输入多输出组合预测项目。该项目旨在提高预测精度、降低计算复杂度、适应复杂数据模式、改善泛化能力、拓展应用范围以及提升模型的可解释性。项目通过K均值聚类对数据进行预处理,将高维数据划分为多个类别,再利用ELM对每个类别进行快速训练和预测。模型架构包括数据预处理、K均值聚类、ELM建模、训练与预测模块。该方法在金融、气象、医疗、工业控制和环境监测等领域具有广泛应用前景。 适合人群:具备一定编程基础,特别是对机器学习和数据科学有一定了解的研发人员、数据分析师和技术爱好者。 使用场景及目标:①适用于多输入多输出的复杂预测任务,如金融预测、气象预报、医疗诊断等;②提高预测模型的效率和准确性,解决在多变量环境下进行精准预测的难题;③通过K均值聚类与ELM结合,降低计算复杂度,提高模型的泛化能力和可解释性。 其他说明:项目详细描述了模型的实现过程,并提供了Python代码示例,涵盖数据预处理、K均值聚类、ELM训练等关键步骤。读者可以通过这些代码示例进行实践,进一步理解模型的工作原理。此外,文中还讨论了项目面临的挑战及解决方案,如数据高维性、聚类效果不确定性、ELM训练过程的稳定性等。建议读者在实践中结合具体应用场景进行调试和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值