惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 司徒正美
D
Docker
B
Blog
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
U
Unit 42
S
SegmentFault 最新的问题
小众软件
小众软件
J
Java Code Geeks
美团技术团队
腾讯CDC
MyScale Blog
MyScale Blog
爱范儿
爱范儿
H
Help Net Security
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
博客园 - 【当耐特】

时间的朋友

Windows 命令行密码重置 Anaconda安装 typescript 注解解读1 Konvajs Shape加载自定义图片 sshpass 使用 why-is-node-running webgl笔记 SharedArrayBuffer is not defined blender 常用快捷键 | 时间的朋友 vue -- v3.4commit提交记录2 vue2 升级vue3报错问题整理 着色器 expressjs 源码 hyper-V arch linux 网络配置 element input数字格式化 three 拼接货架 WebAudio笔记 Windows nginx重启bat脚本 vue -- v3.4commit提交记录 URI malformed vue3 -- Class 对象在组件中使用范例 | 时间的朋友 ruby 安装和升级 element-plus 老版本cascader使用卡死问题 vue3 内置Transition组件 | 时间的朋友 前端memo的实现 | 时间的朋友 Vue -- vue-class-component源码 | 时间的朋友 linux 优化脚本 typescript 装饰器 | 时间的朋友 microbundle 源码 | 时间的朋友 WSL2问题解决WslRegisterDistribution failed with error: 0x800701bc
HTML Element API 用法 | 时间的朋友
2021-10-08 · via 时间的朋友

Published: · LastMod: March 02, 2022 · 960 words

Element.append 🔗

方法在 Element的最后一个子节点之后插入一组 Node 对象或 DOMString 对象。 被插入的 DOMString 对象等价为 Text 节点。

Element.append((Node or DOMString)… nodes);

示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<div id="container">
  <h1>test</h1>

  <h2>test2</h2>
</div>

<script>
  var h1 = document.querySelector("h1");
  var container = document.querySelector("#container");

  let span2 = document.createElement("span");
  span2.textContent = "span2";

  container.append(span2);
  console.log(container.children);
</script>

Element.before 🔗

方法可以在这个节点的父节点中插入一些列的 Node 或者 DOMString 对象

Element.before((Node or DOMString)… nodes);

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<div id="container">
  <h1>test</h1>

  <h2>test2</h2>
</div>

<script>
  var h1 = document.querySelector("h1");
  var container = document.querySelector("#container");

  var span = document.createElement("span");
  span.textContent = "demo span";

  h1.after(span);

  var spanBefore = document.createElement("span");
  spanBefore.textContent = "spanBebore";

  span.before(spanBefore);
</script>

Element.after 🔗

Element.after(…nodes | Text)

参数为html node 或者直接是 html 文本, 也可以是多个参数同时插入

示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<div id="container">
  <h1>test</h1>

  <h2>test2</h2>
</div>

<script>
  var h1 = document.querySelector("h1");
  var container = document.querySelector("#container");

  var span = document.createElement("span");
  span.textContent = "demo span";

  h1.after(span);
</script>

Element.insertBefore 🔗

1
referenceParentNode.insertBefore(targetNode, referenceNode);

父节点操作下面子节点的方法,referenceNode之前插入一个拥有指定父节点的子节点

使用场景

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
function swap(el1: HTMLElement, el2: HTMLElement) {
  // 临时节点,相当于锚点标记
  let temp: HTMLElement = document.createElement("div");
  // 获取父节点
  let parent = el1.parentNode;
  // temp插入到el1前面
  parent.insertBefore(temp, el1);
  // el1插入到el2前面
  parent.insertBefore(el1, el2);
  // el2插入到temp前面
  parent.insertBefore(el2, temp);
  // 删除锚点
  parent.removeChild(temp);
}

Element.closest 🔗

元素接口的 closest()方法用于遍历 HTML 文档树中的元素及其父元素,直到找到与提供的选择器字符串匹配的第一个节点。只搜索父级节点。

1
targetElement.closest(selectors);

参数 此方法接受如上所述和以下描述的单个参数:

selectors 它是一个字符串,它指定将用于查找节点的 HTML 选择器。

返回值 如果找到匹配的祖先,则此方法返回最接近的元素;否则,如果找不到此类元素,则返回 null。

Element.animate 🔗

元素的动画效果

示例代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<div>
  <h5>test paragraph</h5>
</div>
<script>
  var animate = document.getElementsByTagName("h5")[0].animate(
    [
      // keyframes
      { transform: "translateY(0px)" },
      { transform: "translateY(-300px)" },
    ],
    {
      // timing options
      duration: 1000,
      iterations: Infinity,
    }
  );
</script>

h5标签会一直在动画状态

1
2
3
animate.pause(); // 暂停
animate.cancel(); // 取消暂停状态
animate.effect;

Element.getAttribute 🔗

获取元素相关属性

Element.getAttributeNames 🔗

获取元素所有属性Array

Element.insertAdjacentElement 🔗

element.insertAdjacentElement(position, element)

返回插入的元素, 插入失败则返回 null

position 可选值 🔗

  • beforebegin: 在该元素本身的前面.
  • afterbegin:只在该元素当中, 在该元素第一个子孩子前面.
  • beforeend:只在该元素当中, 在该元素最后一个子孩子后面.
  • afterend: 在该元素本身的后面.

element => dom 元素 🔗

插入结果位置 🔗

1
2
3
4
5
6
7
<!-- beforebegin -->
<p>
<!-- afterbegin -->
foo
<!-- beforeend -->
</p>
<!-- afterend -->

insertAdjacentElement

Element.getAttributeNode 🔗

返回指定元素的指定属性节点

var attrNode = element.getAttributeNode(attrName);

attrNode 获得的属性返回值,是Attr 节点, nodeType 为 2 attrName 是一个包含属性名称的 字符串

1
2
3
4
5
6
<div id="app"></div>

<script>
    var el = document.querySelector('#app')
    var idAttr = el.getAttributeNode("id") 
</script>

Element.getBoundingClientRect() 🔗

返回元素的大小及其相对于浏览器视窗的位置。

返回 top,lef,right,bottom,width,height 6个值

注意: 该API返回的 DOMRect 对象在现代浏览器中可以被修改。