「这是我参与11月更文挑战的第 23 天,活动详情查看:2021最后一次更文挑战」
前两篇文章 Element 基本属性,Element 属性获取 主要是讲解到了 Element
类型的子类型 HTMLElement
的内置基本属性,以及通过 getAttribute()
获取 html 元素上的基本属性以及自定义的属性,这篇聊聊剩下的
setAttribute()
与 getAttribute()
配套的方法就是 setAttribute()
,接收两个参数:要设置的属性,以及对应的值
若属性存在,setAttribute
就会更新这个属性的值,若属性不存在,则会使用指定的值来创建新的属性
如图示,我们可以使用 setAttribute
修改现有属性值,或者追加新的属性,但这里有一个细节:即便是我们使用 setAttribute
来设置大写的属性,但是更新到 DOM 上面的时候,属性统一替换为了小写
尝试对大写的属性更新,属性会被 setAttribute
转成小写并更新了对应的值,说明 DOM 中的属性操作,是不区分大小写的(反正最后到了 DOM 都是小写)
同样的,我们可以使用基本属性的方式来进行更新操作
我们通过 myDiv.className
的方式更新了元素的样式,但是,去试图更新刚刚自定义的属性时,不管是 .newAttr
还是 .new-attr
都无法更新(指元素上并没有看到新增的属性,同时,现有的自定义属性 new-atrr
的值也没有修改
removeAttribute()
和 getAttribute
类似,传入我们需要操作的属性,然后,这个属性就会被删除
如图验收,我们删除了自定义的属性
同样的,删除基本属性 class
也是没有问题
如果是基本属性,我们可以对基本属性设 null
实现清空对应的属性值
这种操作方式,虽然清空了属性的值,但属性名还留在 html 元素上,但影响不大