美文网首页
js原生方法操作DOM

js原生方法操作DOM

作者: 任无名F | 来源:发表于2017-04-29 22:43 被阅读0次

首先是一张图:


原生操作DOM节点之间的关系

其实这张图已经包括了大部分操作DOM的js原生方法,下面再详细罗列一下。

直接获取元素
document.getElementById(selector); // 获取指定id的元素
document.getElementsByClassName(selector); // 获取指定class的元素的集合
document.getElementsByTagName(selector); // 获取指定标签名的元素的集合
document.getElementsByName(selector); // 获取带有指定名称(name属性)的元素的集合
获取父子兄弟元素
el.parentNode; // 获取直接父元素
el.offsetParent; // 用于计算定位的父元素(position属性为relative、absolute或fixed的最近的父元素),若不存在这样的父元素,则为body,但是在低版本IE中可能为html
el.childNodes; // 所有子节点的集合,包含文本节点(换行或空白)
el.children; // 所有子元素的集合,不包含文本节点
el.firstChild;
el.lastChild;
el.nextSibling;
el.previousSibling; // 以上四个获取的节点,都包含文本节点
el.firstElementChild;
el.lastElementChild;
el.nextElementSibling;
el.previousElementSibling; // 以上四个获取的节点,不包含文本节点,但是在低版本IE里不兼容
“增删改”元素
let element = document.createElement(TagName); // 根据标签名创建标签
let textnode = document.createTextNode(content); // 根据内容创建文本节点
el.appendChild(element); // 将element标签添加为el的子节点,并且位于最后
el.insertBefore(element, child); // 将element标签添加为el的子节点,并且位于child之前,child参数为空则与appendChild方法效果一致
el.removeChild(element); // 删除el的子节点
el.replaceChild(new, old); // 用new替换old,new可以为新创建的节点也可以为已存在的节点
操作元素属性
let attr = document.createAttribute(name); // 创建一个属性节点
attr.value = "value"; // 为属性节点添加属性值
el.setAttributeNode(attr); // 将一个属性节点添加到el上
el.setAttribute(name, value); // 设置el上的属性,若此属性不存在则添加
el.getAttribute(name); // 获取el上的属性
获取元素的高宽
el.style.width/height; // 获取元素content的宽高,但是若未设置style会得到空,这个留待后面再说
el.clientWidth/clientHeight; // 获取元素可视区的宽高,即为content+padding
el.offsetWidth/offsetHeight; // 获取元素占位宽高,即为content+padding+border
el.scrollWidth/scrollHeight; // 与clientWidth类似,不过如果有滚轮会包括滚轮的宽度
// 注意,margin与以上都无关
let W = document.body.clientWidth || window.innerWidth || document.documentElement.clientWidth; // 获取整个浏览器的可视区宽度,由于IE与firefox的实现有差异,所以需要兼容性写法

相关文章

  • jQuery

    jQuery简介 jQuery其实就是原生JS封装之后的一种方法。比起原生JS的操作要方便许多,原生JS的DOM操...

  • js前端面试题(每日两道3)

    1.类名操作(原生js操作name的增删查) 完成几个 DOM 元素类名操作的工具方法: addClass(dom...

  • 前端发展历史

    1.js操作html 利用原生的javascript (js包括ECMAscript BOM DOM)的DOM操作...

  • 前端html基础(包括dom,事件等)

    六。事件操作 1.事件参考2.DOM 的操作方法3.原生JS获取HTML DOM元素的8种方法4.Javascri...

  • React操作真实DOM

    注意要使用原生js的DOM操作:

  • DOM

    发现复习DOM最好的方法是学习youmightnotneedjquery.com可以对原生JS的DOM操作有一个全...

  • js原生方法操作DOM

    首先是一张图: 其实这张图已经包括了大部分操作DOM的js原生方法,下面再详细罗列一下。 直接获取元素 获取父子兄...

  • react中获取dom以及使用ref

    一、react中获取dom有以下提供三种方法: js 常规dom操作方式,通过id获取dom 2.react原生函...

  • 2022-05-06

    JS 原生DOM 的操作 dom..setAttribute("class",classVal ); //替换c...

  • 2 Vue数据绑定、实例化多个Vue对象、基础指令

    1、Vue框架的优点: (1).相比于原生操作DOM元素,其更节省性能;原因:[1].原生DOM节点使用js操作,...

网友评论

      本文标题:js原生方法操作DOM

      本文链接:https://www.haomeiwen.com/subject/mslttxtx.html