How to return HTML or build HTML using JavaScript?


When building web applications, there are often times when you need to dynamically generate HTML on the client-side. This can be done using JavaScript, and there are different ways to go about it. In this article, we'll show you how to return HTML or build HTML using JavaScript.

Returning HTML from a function

One way to dynamically generate HTML is to return a string of HTML from a function. For example, let's say we have a function that generates a list item −

function generateListItem(text) {
   return '<li>' + text + '</li>';
}

We can then use this function to generate HTML −

function generateListItem(text) {
   return '<li>' + text + '</li>';
}

var list = '<ul>';
list += generateListItem('Item 1');
list += generateListItem('Item 2');
list += generateListItem('Item 3');
list += '</ul>';

console.log(list)

The list variable now contains the following HTML −

<ul>
   <li>Item 1</li>
   <li>Item 2</li>
   <li>Item 3</li>
</ul>

Building HTML using DOM methods

Another way to dynamically generate HTML is to use DOM methods to build the HTML structure. This can be done by creating elements and then adding them to the DOM. For example, let's say we want to create a list with the same items as before −

var list = document.createElement('ul');

var item1 = document.createElement('li');
item1.innerText = 'Item 1';
list.appendChild(item1);

var item2 = document.createElement('li');
item2.innerText = 'Item 2';
list.appendChild(item2);

var item3 = document.createElement('li');
item3.innerText = 'Item 3';
list.appendChild(item3);

The list variable now contains the following HTML −

<ul>
   <li>Item 1</li>
   <li>Item 2</li>
   <li>Item 3</li>
</ul>

Example

In the example below, we build HTML list using different DOM methods.

<!DOCTYPE html>
<html>
<body>
   <h2> Building HML using DOM methods</h2>
   <div id="parent">
      <p> We create a list by generating HTML elements</p>
      <h4 id="child">Tutorials List</h4>
   </div>
   <div id="result"></div>

   <script>
      var list = document.createElement('ul');
      var item1 = document.createElement('li');
      item1.innerText = 'JavaScript';
      list.appendChild(item1);

      var item2 = document.createElement('li');
      item2.innerText = 'Python';
      list.appendChild(item2);

      var item3 = document.createElement('li');
      item3.innerText = 'Rupy';
      list.appendChild(item3);
      document.getElementById("result").appendChild(list)
   </script>
</body>
</html>

In the above program, we used the createElement method to create an unordered list and list items. The appendChild method is used to add the list items to the list.

Building HTML using innerHTML

Another way to build HTML is to use the innerHTML property. This can be done by creating an element and then setting its innerHTML property to a string of HTML. For example, let's say we want to create a list with the same items as before −

var list = document.createElement('ul');
list.innerHTML = '<li>Item 1</li><li>Item 2</li><li>Item 3</li>';

The list variable now contains the following HTML −

<ul>
   <li>Item 1</li>
   <li>Item 2</li>
   <li>Item 3</li>
</ul>

Example

In the example below, we build an HTML list by assigning the list to the innerHTML.

<!DOCTYPE html>
<html>
<body>
   <div id="result"> List </div>
   <script>
      var list = document.createElement('ul');
      list.innerHTML = '<li>Item 1</li><li>Item 2</li><li>Item 3</li>';
      document.getElementById("result").appendChild(list)
   </script>
</body>
</html>

In the above program, we create a list using the createElement method. The list items are added to the list using the innerHTML. To display the list we appended the <div> element with id = "result" using appendChild method.

Conclusion

In this tutorial, we've shown how to return HTML or build HTML using JavaScript. There are different ways to go about it, and the method you choose will depend on your needs.

Updated on: 01-Jul-2022

14K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements