在 JavaScript 中新增元素

Mehvish Ashiq 2024年2月15日
  1. 在 JavaScript 中使用 prepend() 方法新增元素
  2. 在 JavaScript 中使用 insertBefore() 方法新增元素
  3. 在 JavaScript 中使用 insertAdjacentElement() 方法新增元素
  4. 在 JavaScript 中使用 before() 方法新增元素
在 JavaScript 中新增元素

本文介紹瞭如何在 JavaScript 中新增元素。Prepend 表示在指定元素的開頭插入。

我們可以使用 prepend()insertBefore()before()insertAdjacentElement() 方法來做到這一點。讓我們一一學習。

在 JavaScript 中使用 prepend() 方法新增元素

我們可以使用 prepend() 方法在指定元素的開頭插入 DOMStringNode 的集合,這意味著我們可以在父元素的直接第一個子元素之前插入。請參閱下面給出的程式碼片段。

HTML 程式碼(此 HTML 在本教程中將是相同的):

<ul id="languages">
 	<li>Python</li>
</ul>

JavaScript 程式碼:

let parentNode = document.querySelector('#languages');
let li = document.createElement('li');
li.textContent = 'Java';
parentNode.prepend(li);

輸出:

使用 javascript 新增元素 - 輸出一

最初,我們的頁面上有一個列表項:Python。我們使用 querySelector() 選擇與特定選擇器匹配的第一個元素並將其儲存在 parentNode 中以新增另一個列表項。

然後,使用 createElement() 建立一個 <li> 元素,並使用 .textContent 屬性將文字內容設定為 Java

最後,我們使用 prepend() 方法在 Python 之前插入 Java(參見上面的輸出)。我們可以在元素的第一個子元素之前新增多個 <li> 元素嗎?

是的當然。請參閱以下程式碼並觀察輸出。

JavaScript 程式碼:

let parentNode = document.querySelector('#languages');
let languages = ['Java', 'JavaScript', 'TypeScript'];

let nodes = languages.map(lang => {
  let li = document.createElement('li');
  li.textContent = lang;
  return li;
});

parentNode.prepend(...nodes);

輸出:

使用 javascript 新增元素 - 輸出二

此示例還選擇與給定選擇器匹配的第一個元素。

此外,我們使用 map() 方法為建立 <li> 元素的 languages 陣列的每個元素呼叫箭頭函式,並使用 .textContent 屬性設定 <li> 與陣列的當前元素。

請記住,map() 方法既不會為空元素呼叫函式,也不會更改實際陣列,即此處的 languages

最後,我們使用 spread operator (...) 將具有所有列表項的 nodes 傳遞給 prepend() 方法。擴充套件運算子遍歷陣列並將其拆分為單獨的元素。

請記住,prepend() 方法會在父節點的第一個子節點之前立即插入一組節點。讓我們繼續下面的程式碼,使用 JavaScript 預先新增 DOMString

JavaScript 程式碼:

let parent = document.querySelector('#languages');
parent.prepend('prepending DOMString Demo');
console.log(parent.textContent);

輸出:

使用 javascript 新增元素 - 輸出三

你看,DOMString 被插入到元素的第一個子元素(列表項 Python)之前。

通過在控制檯上列印,我們在雙引號中看到列表項 PythonDOMString,因為我們在這裡使用 .textContent 屬性返回特定節點及其所有子節點的文字內容。

在 JavaScript 中使用 insertBefore() 方法新增元素

JavaScript 程式碼:

let parentNode = document.querySelector('#languages');
let li = document.createElement('li');
li.textContent = 'Java';
parentNode.insertBefore(li, parentNode.firstChild);

輸出:

使用 javascript 新增元素 - 輸出四

在這裡,inserBefore() 方法將要插入的當前元素和父元素的第一個子元素作為引數。然後,它將當前元素插入到父元素的第一個子元素之前(參見上面的輸出)。

在 JavaScript 中使用 insertAdjacentElement() 方法新增元素

JavaScript 程式碼:

let parentNode = document.querySelector('#languages');
let li = document.createElement('li');
li.textContent = 'Java';
parentNode.insertAdjacentElement('afterbegin', li);

輸出:

使用 javascript 新增元素 - 輸出六

此示例使用 insertAdjacentElement() 方法在給定位置插入指定元素。

它有四個屬性:beforebeginafterbeginbeforeendafterend,但我們使用 afterbegin 插入父元素之後但在第一個子元素之前。

請參閱以下內容以視覺化這些屬性如何新增元素。請記住,我們將元素作為其 id 為 languages 的父元素。

<!-- beforebegin -->
<ul id="languages">

    <!-- afterbegin -->

 <li>Python</li>

    <!-- beforeend -->

</ul>
<!-- afterend -->

我們已經看到了如何選擇父元素並在父元素的第一個子元素之前插入一個新元素。讓我們探索如何選擇子元素本身並在其自身之前插入另一個元素。

在 JavaScript 中使用 before() 方法新增元素

JavaScript 程式碼:

let parentNode = document.querySelector('#languages');
let li = document.createElement('li');
li.textContent = 'Java';
parentNode.firstChild.before(li);

輸出:

使用 javascript 前置元素 - 輸出五

在這裡,我們使用 before() 方法來新增元素。我們可以在父元素的指定元素之前插入一個 DOMStringnode 的集合。

在這裡,我們可以選擇任何孩子,但我們專注於在 firstChild 之前插入。你可以在此處找到有關 before() 的更多資訊。

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相關文章 - JavaScript Element