
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
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.