所属分类:web前端开发
我们可以使用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 在项目列表之间动态添加逗号的一种方法是在列表项目上使用 ::before 伪元素。
在每个 li 的 ::before 伪元素内(除了第一个 li 子元素),我们将添加一个逗号,这样就可以解决问题了。
这样做的代码是 -
.dynamic-list li { display: inline-block; } .dynamic-list li::before { content: ", "; } .dynamic-list li:first-child::before { content: ""; }
这将在每个列表项之前添加一个逗号和空格,第一个列表项除外。第一项前面没有内容,因此前面没有逗号。
或者,您也可以使用 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>