如何在JavaScript中动态地在一个列表项之间添加逗号

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

我们将在本文中讨论两种不同的方法,它们可以用来实现相同的最终目标:在每个列表项(最后一项除外)后添加一个逗号。

因此,让我们逐一来看看这两种方法。

方法1:使用CSS

用CSS在列表项之间动态添加逗号的方法之一是在列表项上使用::before 伪元素。

在每个li的::before伪元素里面,除了第一个li的孩子,我们将添加一个逗号,这将为我们带来好处。

这样做的代码将是–

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

这将在每个列表项之前添加一个逗号和空格,除了第一项。第一个项目之前将没有内容,导致其前面没有逗号。

方法2:使用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>

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程