तत्व बनाना और जोड़ना
DOM संरचना को गतिशील रूप से बनाने और बदलने के लिए createElement, setAttribute, append और remove का उपयोग करें।
तत्व बनाना और जोड़ना, CoddyKit पर Frontend Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Frontend Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Frontend Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
createElement
document.createElement(tagName) मेमोरी में एक नया element बनाता है — वह अभी DOM में नहीं होता। इसके बाद आप उसकी properties निर्धारित करके उसे ट्री में append करते हैं।
const btn = document.createElement('button');
btn.textContent = 'Click Me';
btn.classList.add('btn-primary');
btn.setAttribute('type', 'button');
// btn is in memory, not yet in the pageappend और appendChild
parent.append(child) parent के children के अंत में कोई node या string जोड़ता है। appendChild इसका पुराना समकक्ष है, लेकिन append अधिक लचीला है — यह कई nodes और strings स्वीकार करता है।
const list = document.querySelector('ul');
const item = document.createElement('li');
item.textContent = 'New item';
list.append(item); // adds to end of listprepend, before, after
parent.prepend() शुरुआत में जोड़ता है। element.before() तत्व से पहले इंसर्ट करता है। element.after() उसके बाद इंसर्ट करता है।
const header = document.querySelector('.card-header');
const icon = document.createElement('img');
icon.src = 'icon.svg';
header.prepend(icon); // icon goes before all other children
const divider = document.createElement('hr');
header.after(divider); // divider goes after the headerinsertAdjacentHTML
element.insertAdjacentHTML(position, htmlString) मौजूदा सामग्री को बदले बिना, निर्दिष्ट स्थान पर HTML इंसर्ट करता है। स्थान: 'beforebegin', 'afterbegin', 'beforeend', 'afterend'।
const container = document.querySelector('.list');
container.insertAdjacentHTML('beforeend', `
<li class="item">
<span class="name">Alice</span>
</li>
`);
// Still avoid with user input — XSS riskcloneNode
element.cloneNode(true) किसी तत्व और उसके सभी child elements सहित उसकी डीप कॉपी बनाता है। शैलो कॉपी के लिए false पास करें। template elements को डुप्लिकेट करने के लिए उपयोगी है।
const template = document.querySelector('.card-template');
const clone = template.cloneNode(true);
clone.querySelector('.card-title').textContent = 'New Card';
container.append(clone);removeChild और remove()
element.remove() तत्व को DOM से हटा देता है। पुरानी parent.removeChild(child) विधि भी काम करती है। हटाए गए तत्वों का संदर्भ variables में अभी भी रखा जा सकता है और उन्हें फिर से जोड़ा जा सकता है।
const item = document.querySelector('.to-delete');
item.remove(); // clean modern syntaxreplaceWith
oldElement.replaceWith(newElement) DOM में पुराने तत्व को नए तत्व से बदल देता है। पुराने replaceChild पैटर्न की तुलना में यह अधिक सुविधाजनक है।
const old = document.querySelector('.old-banner');
const fresh = document.createElement('div');
fresh.className = 'new-banner';
fresh.textContent = 'Updated!';
old.replaceWith(fresh);DocumentFragment से एक साथ इंसर्ट करना
DocumentFragment एक हल्का container है जो DOM में मौजूद नहीं होता। इसके अंदर एक subtree बनाएँ, फिर उसे एक ही ऑपरेशन में append करें — इससे N बार reflow होने के बजाय केवल एक बार reflow होता है।
const fragment = document.createDocumentFragment();
users.forEach(user => {
const li = document.createElement('li');
li.textContent = user.name;
fragment.append(li);
});
// One DOM write:
document.querySelector('ul').append(fragment);<template> तत्व
HTML का <template> तत्व ऐसा markup रखता है जिसे JavaScript से clone किए जाने तक रेंडर नहीं किया जाता। यह strings बनाने या दिखाई देने वाले elements को clone करने से बेहतर है।
<template id="card-tpl">
<div class="card">
<h3 class="card-title"></h3>
<p class="card-body"></p>
</div>
</template>Properties और Attributes सेट करना
Element properties (el.href, el.src, el.value) अक्सर values सेट करने का सबसे सीधा और बेहतर प्रदर्शन वाला तरीका होती हैं। Attributes (setAttribute) उन custom या ARIA attributes के लिए सबसे अच्छे हैं जिनकी corresponding DOM property नहीं होती।
// Property (preferred for standard HTML attributes):
img.src = '/photo.webp';
link.href = '/about';
// setAttribute (for ARIA and custom attributes):
button.setAttribute('aria-expanded', 'true');
div.setAttribute('data-index', '3');User Content के साथ innerHTML से बचना
User द्वारा दिए गए data से elements बनाते समय, HTML string बनाने और innerHTML का उपयोग करने के बजाय हमेशा DOM methods (createElement, textContent, setAttribute) का उपयोग करें। User input को कभी भी HTML strings में interpolate न करें।
// DANGEROUS:
container.innerHTML = `<p>${userComment}</p>`;
// SAFE:
const p = document.createElement('p');
p.textContent = userComment;
container.append(p);त्वरित जाँच
आपको 100 reflows कराए बिना किसी <ul> में 100 list items जोड़ने हैं। कौन-सा तरीका सबसे अच्छा है?
पुनरावलोकन: DOM Elements बनाना
createElement मेमोरी में बनाता है। append/prepend/before/after उन्हें tree में इंसर्ट करते हैं। remove() किसी तत्व को हटा देता है। DocumentFragment बेहतर प्रदर्शन के लिए इंसर्ट को एक साथ करता है। तत्व दोबारा उपयोग किए जा सकने वाले markup को रखता है। User data के साथ हमेशा textContent का उपयोग करें, innerHTML का कभी नहीं।
एआई शिक्षक के साथ HTML सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 41
- पाठ
- 163
अक्सर पूछे जाने वाले प्रश्न
क्या “तत्व बनाना और जोड़ना” पाठ निःशुल्क है?
हाँ—“तत्व बनाना और जोड़ना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Frontend Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Frontend Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“तत्व बनाना और जोड़ना” में मैं क्या सीखूँगा?
DOM संरचना को गतिशील रूप से बनाने और बदलने के लिए createElement, setAttribute, append और remove का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Frontend Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Frontend Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Frontend Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“तत्व बनाना और जोड़ना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Frontend Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Frontend Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- querySelector और querySelectorAll
- addEventListener और Event ऑब्जेक्ट
- सामग्री बदलना: textContent, innerHTML, classList
- तत्व बनाना और जोड़ना