आप इसे इस तरह से कर सकते हैं:
var list = document.getElementById("foo").getElementsByClassName("bar");
if (list && list.length > 0) {
list[0].innerHTML = "Goodbye world!";
}
या, यदि आप इसे कम त्रुटि जाँच और अधिक संक्षिप्तता के साथ करना चाहते हैं, तो इसे इस तरह एक पंक्ति में किया जा सकता है:
document.getElementById("foo").getElementsByClassName("bar")[0].innerHTML = "Goodbye world!";
स्पष्टीकरण में:
- आप के साथ तत्व मिलता है
id="foo"।
- फिर आप उन वस्तुओं को खोजते हैं जो उस वस्तु के भीतर समाहित हैं
class="bar"।
- यह एक सरणी-जैसे नोडलिस्ट देता है, इसलिए आप उस नोडलिस्ट में पहले आइटम का संदर्भ देते हैं
- आप
innerHTMLउस सामग्री को बदलने के लिए उस आइटम को सेट कर सकते हैं।
कैविट्स: कुछ पुराने ब्राउज़र समर्थन नहीं करते हैं getElementsByClassName(उदाहरण के लिए IE के पुराने संस्करण)। लापता होने पर उस फ़ंक्शन को शर्मिंदा किया जा सकता है।
यह वह जगह है जहां मैं उस लाइब्रेरी का उपयोग करने की सलाह देता हूं जिसमें स्वयं ब्राउज़र संगतता के बारे में चिंता करने के बजाय सीएसएस 3 चयनकर्ता समर्थन है (किसी और को सभी काम करने दें)। यदि आप ऐसा करने के लिए सिर्फ एक पुस्तकालय चाहते हैं, तो सिज़ल महान काम करेगा। सिज़ल में, यह इस तरह किया जाएगा:
Sizzle("#foo .bar")[0].innerHTML = "Goodbye world!";
jQuery में Sizzle लाइब्रेरी बिल्ट-इन और jQuery में है, यह होगा:
$("#foo .bar").html("Goodbye world!");
document.getElementsByClassNameठीक काम करेगा।