和我一起深入了解文档对象模型(DOM)「Element 基本属性」

510 阅读2分钟

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

Element 类型

Element 类型是 web 开发中最常用的类型,对外提供了访问元素标签名、子节点以及属性的能力

Element 类型的节点具备这些特点:

  • nodeType = 1
  • nodeName 为元素的标签名
  • nodeValue 值为 null
  • parentNode 为 Document/Element 对象
  • 子节点可以是 Element/Text/Comment 等类型

我们可以通过 nodeName/tagName 来获取元素的标签名,这两个属性都返回相同的值(tagName 属性更加语义化方便理解)

image.png

考虑到不同浏览器之间的行为,在获取 tagName 并进行 html 标签类型比较的时候,建议对这个值进行转 大/小写 进行判断

html 标签

基本属性

所有的 html 元素,都是 HTMLElement 类型,而 HTMLElement 类型继承自 Element,并在此之前添加了一些属性

html 元素都会具备如下的属性:

  • id,元素在文档内的唯一标识
  • title,鼠标悬浮在元素上显示的提示信息
  • lang,元素内容的语言代码(基本不用)
  • dir,语言的书写方向,ltr 从左往右,rtr 从右往左,也很少用
  • className,class 属性,指定元素的 css 样式(class 类关键字,给占用了)

基本属性的获取

上述的属性,都可以通过 元素.属性 的方式获取到

image.png

如果这个标签中没有使用到这个属性,对应的获取操作就会返回空字符

如果一个标签上有多个 css 样式,myDiv.className 实际上也是将 class 属性上的值作为一个字符串进行返回

基本属性的修改

我们可以将属性作为一个变量,直接为他赋予一个字符串类型的值

image.png

上面的演示只是表明了对应的属性确实改变了,下面一个例子,以 className 为例,证明了属性修改确实会实时更新到 dom 节点上

image.png

image.png