Skip to content

Element 元素

新增

1. 通过 append(...nodes) 方法新增子元素

新增的元素位于子元素列表的末尾处。

HTML 模板内容:

html
<div class="container">
  <div class="item1">item1</div>
  <div class="item2">item2</div>
</div>

执行这段 JavaScript 代码:

javascript
const container = document.querySelector('.container');
const item3 = document.createElement('div');
item3.className = 'item3';
item3.innerHTML = 'item3';
if (container) {
  container.append(item3);
}

运行结果:

html
<div id="container">
  <div class="item1"></div>
  <div class="item2"></div>
  <!-- 新增的元素 -->
  <div class="item3"></div>
</div>

2. 通过 afer() 方法新增一个兄弟元素

新增完成后,新增的元素会在当前元素之后。

HTML 模板文件内容:

html
<div class="container">
  <div class="item1">item1</div>
</div>

执行下面这段 JavaScript 代码:

javascript
const item1 = document.querySelector('.item1');
const item2 = document.createElement('div');
item2.className = 'item2';
item2.innerHTML = 'item2';
item1.after(item2);

运行结果如下:

html
<div class="container">
  <div class="item1">item1</div>
  <div class="item2">item2</div>
</div>

3. 通过 prepend() 方法新增一个子元素

新增完成后,新增的元素会在当前元素的子元素列表的第一个。

删除

1. 通过 remove() 方法删除自身及其子元素

javascript
const el = document.querySelector('#my-node');
el.remove();

需要注意的是,remove() 方法在 with 语句中不可用

javascript
with (el) {
  // 执行会报错。ReferenceError: remove is not defind
  el.remove();
}

修改

1. 修改文本内容

  • innerText 非标准属性,用于设置标签的文本内容,不包含 HTML 标签,如 element.innerText = "text";
  • innerHTML 标准属性,可以包含 HTML 标签,如 element.innerHTML = <span>text</span>

2. 修改元素属性

查询

1. 通过 document.getElementById(id) 方法

代码示例:

html
<div>
  <input id="username-input" placeholder="请输入" />
</div>
javascript
// 查找输入框,需要注意的是 id 参数不需要以 # 号开头
const input = document.getElementById('username-input');
// 如果输入框存在,则使输入框获取焦点。
if (input) {
  input.focus();
}

2. 通过 document.querySelector(selector) 方法

该方法使得我们可以通过选择器去查询一个元素,该方法会通过深度优先遍历,返回第一个匹配到的元素。

如果你希望匹配多个元素,那么你可以使用 document.querySelectorAll() 方法去查询。