Use createElement() and appendChild() or template literals
const div = document.createElement('div');
div.className = 'card';
div.textContent = 'Hello World';
document.body.appendChild(div);function createCard(title, content) {
const card = document.createElement('div');
card.className = 'card';
const heading = document.createElement('h2');
heading.textContent = title;
const paragraph = document.createElement('p');
paragraph.textContent = content;
card.appendChild(heading);
card.appendChild(paragraph);
return card;
}
// Usage
const myCard = createCard('Title', 'Content');
document.body.appendChild(myCard);element.insertAdjacentHTML('beforeend', `
<div class="card">
<h2>${title}</h2>
</div>
`);const img = document.createElement('img');
Object.assign(img, { src: 'pic.jpg', alt: 'Picture' });Avoid innerHTML for untrusted content
// DON'T DO THIS (XSS risk with user input)
element.innerHTML = '<div>' + userInput + '</div>';✓ Works in all modern browsers (ES5+)