如何在 JavaScript 中動態地在專案列表之間新增逗號?


我們可以使用 CSS 的 "::before" 偽元素來動態地在每個列表項之前新增逗號,除了第一個列表項。透過定位列表項並使用 "content" 屬性,我們可以在列表項內容之前插入逗號。此外,我們可以使用 ":not(:first-child)" 偽類來確保只有非第一個列表項新增逗號。

假設我們有以下 HTML DOM

<ul class="dynamic-list">
   <li>Item 1</li>
   <li>Item 2</li>
   <li>Item 3</li>
   <li>Item 4</li>
</ul>

在本文中,我們將討論兩種不同的方法,它們可以用來實現相同的最終目標:在每個列表項之後新增逗號(最後一個列表項除外)。

因此,讓我們逐一瞭解每種方法。

方法一:使用 CSS

使用 CSS 動態地在專案列表之間新增逗號的一種方法是在列表項上使用 ::before 偽元素。

在每個 li 的 ::before 偽元素內,除了第一個 li 子元素,我們將新增一個逗號,這將為我們解決問題。

這樣做的程式碼如下:

.dynamic-list li {
  display: inline-block;
}
.dynamic-list li::before {
  content: ", ";
}
.dynamic-list li:first-child::before {
  content: "";
}

這將在每個列表項之前新增一個逗號和空格,第一個列表項除外。第一個專案之前沒有任何內容,因此它之前沒有逗號。

方法二:使用 JavaScript

或者,您也可以使用 javascript 或 jquery 來動態地在列表項之間新增逗號。在這裡,我們將使用純 JavaScript 來動態地在專案列表之間新增逗號。

執行此操作的程式碼如下:

var list = document.getElementById("dynamic-list");
var items = list.getElementsByTagName("li");
for (var i = 0; i < items.length; i++) {
   if (i > 0) {
      items[i].innerHTML = ", " + items[i].innerHTML;
   }
}

此程式碼首先按其 id 選擇列表,然後獲取所有列表項。然後它迴圈遍歷每個專案,並檢查它是否不是第一個專案,如果不是,它會在專案內容之前新增逗號和空格。

示例

最終程式碼將是:

<!DOCTYPE html>
<html>
<head>
   <title>Comma Separated List</title>
</head>
<style>
   li {
      display: inline-block;
      color: black;
   }
</style>
   <body>
      <ul id="dynamic-list">
         <li>Item 1</li>
         <li>Item 2</li>
         <li>Item 3</li>
         <li>Item 4</li>
      </ul>
      <script>
         var list = document.getElementById("dynamic-list");
         var items = list.getElementsByTagName("li");
         for (var i = 0; i < items.length; i++) {
            if (i > 0) {
               items[i].innerHTML = ", " + items[i].innerHTML;
            }
         }
      </script>
   </body>
</html>

更新於:2023年2月6日

2K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告