How to Add Commas Between a List of Items Dynamically in JavaScript?

In web development, you often need to display lists of items with commas separating them, like "Item 1, Item 2, Item 3". This can be achieved using CSS or JavaScript to dynamically add commas between list items.

HTML Structure

Consider the following HTML list structure:

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

We'll explore two approaches to add commas between these items dynamically.

Using CSS (Recommended)

The CSS approach uses the ::before pseudo-element to insert commas before each list item, except the first one. This method requires no JavaScript and is more performant.

<!DOCTYPE html>
<html>
<head>
   <title>CSS Comma Separated List</title>
   <style>
      .dynamic-list li {
         display: inline-block;
         color: #333;
      }
      .dynamic-list li::before {
         content: ", ";
      }
      .dynamic-list li:first-child::before {
         content: "";
      }
   </style>
</head>
<body>
   <ul class="dynamic-list">
      <li>Apple</li>
      <li>Orange</li>
      <li>Banana</li>
      <li>Grape</li>
   </ul>
</body>
</html>
Apple, Orange, Banana, Grape

How CSS Method Works

The CSS solution works by:

  • display: inline-block makes list items appear horizontally
  • ::before pseudo-element adds content before each item
  • :first-child::before removes the comma from the first item

Using JavaScript

The JavaScript approach programmatically adds commas by modifying the innerHTML of list items. This method offers more control for dynamic content.

<!DOCTYPE html>
<html>
<head>
   <title>JavaScript Comma Separated List</title>
   <style>
      #js-list li {
         display: inline-block;
         color: #333;
      }
   </style>
</head>
<body>
   <ul id="js-list">
      <li>Red</li>
      <li>Blue</li>
      <li>Green</li>
      <li>Yellow</li>
   </ul>

   <script>
      const list = document.getElementById("js-list");
      const items = list.getElementsByTagName("li");
      
      for (let i = 0; i < items.length; i++) {
         if (i > 0) {
            items[i].innerHTML = ", " + items[i].innerHTML;
         }
      }
   </script>
</body>
</html>
Red, Blue, Green, Yellow

Modern JavaScript Alternative

For better performance with dynamic lists, you can use Array.join() method:

<!DOCTYPE html>
<html>
<head>
   <title>Modern JavaScript Approach</title>
</head>
<body>
   <div id="modern-list"></div>

   <script>
      const items = ['JavaScript', 'Python', 'Java', 'C++'];
      const listContainer = document.getElementById('modern-list');
      
      // Join array with commas and display
      listContainer.textContent = items.join(', ');
   </script>
</body>
</html>
JavaScript, Python, Java, C++

Comparison

Method Performance Dynamic Content Complexity
CSS High Limited Low
JavaScript DOM Medium Full Medium
Array.join() High Full Low

Conclusion

Use CSS for static lists due to better performance and simplicity. For dynamic content, prefer Array.join() over DOM manipulation as it's cleaner and more efficient.

Updated on: 2026-03-15T23:19:00+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements