05-element节点

nobility 发布于 2022-11-16 03-DOM 2391 次阅读


element节点

HTML元素对象继承了Node接口、ParentNode接口和ChildNode接口,以及EventTarget事件接口,对于一下特殊的HTML元素对象还有自己独特的属性和方法

属性操作

属性

属性名 描述
Element.attributes NamedNodeMap结构存储着所有属性节点对象,NamedNodeMap是一个伪数组结构,既可以使用数组下标也可以使用key获得属性对象,属性对象也继承Node接口,所以可以使用nodeValue属性修改属性值nodeName属性获取属性名
Element.dataset data-为前缀的自定义属性集合,自定义属性命名必须使用中划线分隔多个单词,不能使用驼峰命名法,到js中会被自动转义成驼峰命名法

方法

方法名 描述
Element.getAttribute(name) 根据属性名获取属性值,没有返回null
Element.getAttributeNames() 获取所有属性名的数组
Element.setAttribute(key,value) 设置属性名和属性值
Element.hasAttribute(name) 根据属性名判断是否有该属性
Element.hasAttributes() 判断是否有属性
Element.removeAttribute(name) 根据属性名删除属性

CSS操作

属性名 描述
Element.className 以字符串形式存储class属性的属性值
Element.classList DOMTokenList数据结构存储着每个class的属性值
Element.style CSSStyleDeclaration数据结构存储着css内敛样式;CSSStyleDeclaration数据结构以对象形式存储着各个css的属性值和属性名,只不过属性名从中划线连接变成了驼峰命名法

DOMTokenList接口

该集合是一个伪数组结构,拥有length属性和数组下标,同时还拥有一个value属性以字符串形式存储class属性值

实例方法
方法名 描述
DOMTokenList.prototype.add(className) 添加一个类名,无返回值
DOMTokenList.prototype.add(className) 删除一个类名,无返回值
DOMTokenList.prototype.contains(className) 判断是否有该类名
DOMTokenList.prototype.replace(oldClass,newClass) 将旧的类名替换为新的类名
DOMTokenList.prototype.toggle(className) 切换该类名,有就移除,没有就添加

CSSStyleDeclaration接口

以对象形式存储着所有的css属性,这些属性名采用驼峰命名法存储,若未设置这些属性则就是空字符串,若是获取不存在的css属性才会返回undefined

实例属性
属性名 描述
CSSStyleDeclaration.prototype.cssText 内敛样式文本属性内容
CSSStyleDeclaration.prototype.length 设置样式的个数
实例方法
方法名 描述
CSSStyleDeclaration.prototype.getPropertyPriority(property) 获取该css属性的优先级,若是important就返回该字符串,否则就是空字符串
CSSStyleDeclaration.prototype.getPropertyValue(property) 获取该css属性的属性值
CSSStyleDeclaration.prototype.removeProperty(property) 删除该css属性的属性值
CSSStyleDeclaration.setProperty(property,value[,important]) 设置该css属性为该属性值,可以指定important

文本操作

属性名 描述
Element.innerHTML 元素内部的HTML代码
Element.outerHTML 整个元素的HTML代码
Element.innerText Node.prototype.textContent效果一样,建议使用Node接口中的标准方法

节点操作

这两个方法其实是继承的NonDocumentTypeChildNode接口方法

属性名 描述
Element.nextElementSibling 下一个兄弟元素节点
Element.previousElementSibling 上一个兄弟元素节点

盒模型属性

这些属性返回的都是整数,小数会被四舍五入掉,除拉设置滚动的位置的属性之外都是只读属性

client

方法名 描述
Element.clientHeight 元素的高度内容+padding内容+padding,仅对块元素有效,行内元素永远是0
Element.clientWidth 元素的宽度内容+padding内容+padding,仅对块元素有效,行内元素永远是0
Element.clientLeft 左边框宽度
Element.clientTop 上边框宽度

scroll

属性名 描述
Element.scrollHeight 元素总高度内容+padding内容+padding,包括溢出内容部分
Element.scrollWidth 元素总高度内容+padding内容+padding,包括溢出内容部分
Element.scrollLeft 当前元素内容水平向右滚动的距离,可读写
Element.scrollTop 当前元素内容垂直向下滚动的距离,可读写,为整个网页设置要使用HTML根元素
Element.scrollIntoView() 这是一个方法,使当前元素滚动到可视区位置

offset

属性名 描述
Element.offsetParent 最近开启定位的祖先元素
Element.offsetHeight 元素高度内容+padding+border内容+padding+border
Element.offsetWidth 元素宽度内容+padding+border内容+padding+border
Element.offsetLeft 元素左偏移量
Element.offsetTop 元素上偏移量

事件操作

为元素节点的事件属性绑定监听函数,这些属性名都是与HTML的事件属性是一致的,唯一不同的是js中绑定的是事件监听函数,而HTML是绑定执行的js语句,这种方式若绑定多个会被覆盖掉

方法名 描述
Element.focus() 触发该元素的获得焦点事件,焦点会移入到当前元素
Element.blur() 触发该元素的失去焦点事件,焦点会移开到当前元素
Element.click() 触发该元素的点击事件
加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2022-11-16