如何在 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>
廣告