和我一起深入了解文档对象模型(DOM)「Element 属性修改与删除」

321 阅读2分钟

「这是我参与11月更文挑战的第 23 天,活动详情查看:2021最后一次更文挑战

前两篇文章 Element 基本属性Element 属性获取 主要是讲解到了 Element 类型的子类型 HTMLElement 的内置基本属性,以及通过 getAttribute() 获取 html 元素上的基本属性以及自定义的属性,这篇聊聊剩下的

setAttribute()

getAttribute() 配套的方法就是 setAttribute(),接收两个参数:要设置的属性,以及对应的值

若属性存在,setAttribute 就会更新这个属性的值,若属性不存在,则会使用指定的值来创建新的属性

image.png

如图示,我们可以使用 setAttribute 修改现有属性值,或者追加新的属性,但这里有一个细节:即便是我们使用 setAttribute 来设置大写的属性,但是更新到 DOM 上面的时候,属性统一替换为了小写

image.png

尝试对大写的属性更新,属性会被 setAttribute 转成小写并更新了对应的值,说明 DOM 中的属性操作,是不区分大小写的(反正最后到了 DOM 都是小写)


同样的,我们可以使用基本属性的方式来进行更新操作

image.png

我们通过 myDiv.className 的方式更新了元素的样式,但是,去试图更新刚刚自定义的属性时,不管是 .newAttr 还是 .new-attr 都无法更新(指元素上并没有看到新增的属性,同时,现有的自定义属性 new-atrr 的值也没有修改

removeAttribute()

getAttribute 类似,传入我们需要操作的属性,然后,这个属性就会被删除

image.png

如图验收,我们删除了自定义的属性

image.png

同样的,删除基本属性 class 也是没有问题

如果是基本属性,我们可以对基本属性设 null 实现清空对应的属性值

image.png

这种操作方式,虽然清空了属性的值,但属性名还留在 html 元素上,但影响不大