दिलचस्प पोस्ट
पायथन में उनके गुणों द्वारा समानता के लिए वस्तु के उदाहरणों की तुलना करें यदि ब्लॉक के भीतर गूंज बयान है? मैं स्वत: पूर्ण प्लग-इन परिणामों को कैसे अनुकूलित कर सकता हूं? पीएचपी डोमोनोड में एचटीएमएल कैसे डालें? जावा: यदि ए का विस्तार बी और बी ऑब्जेक्ट फैलता है, तो यह एकाधिक विरासत है jquery मोबाइल बाहरी पैनल स्टाइल पर नहीं ले रहा है एक ग्रिडव्यू (एंड्रॉइड) में एक हेडर जोड़ें विजुअल स्टूडियो बिल्ड विफल रहता है: obj \ debug से bin \ debug को exe-file कॉपी करने में असमर्थ एंड्रॉइड में मेनू आइटम का टेक्स्ट रंग कैसे बदल सकता है? क्या यह सी # 4 में एक सहकारिता बग है? एक यूनिकोड वर्ण को अपने ASCII समकक्ष में कनवर्ट कैसे करें मूल_ओआईएस पर झंडे की शब्दावली एंड्रॉइड: एंड्रॉइड। आर.आईड.कॉन्टान्ट क्या है? ट्विटर बूटस्ट्रैप प्लगइन को कैसे विस्तारित करें कॉल कीवर्ड VB6 में क्या करता है?

कक्षा में जावास्क्रिप्ट में तत्व कैसे प्राप्त करें?

मैं एक html तत्व के भीतर सामग्री को बदलना चाहता हूं इसलिए मैं इसके लिए निम्नलिखित फ़ंक्शन का उपयोग कर रहा हूं:

function ReplaceContentInContainer(id,content) { var container = document.getElementById(id); container.innerHTML = content; } ReplaceContentInContainer('box','This is the replacement text'); <div id='box'></div> 

उपरोक्त काम महान है, लेकिन समस्या यह है कि मेरे पास उस पृष्ठ पर एक से अधिक HTML तत्व हैं जो की सामग्री को बदलना चाहते हैं I इसलिए मैं इसके बजाय आईडी पर वर्गों का उपयोग नहीं कर सकता। मुझे बताया गया है कि जावास्क्रिप्ट क्लास फंक्शन द्वारा किसी भी प्रकार के इनबिल्ट लेट एलिमेंट का समर्थन नहीं करता है। तो इसके बजाय ऊपर कोड को संशोधित करने के लिए इसे ईड्स के बजाय कक्षाओं के साथ कैसे काम करना चाहिए?

पीएस मैं इस के लिए jQuery का उपयोग नहीं करना चाहता।

वेब के समाधान से एकत्रित समाधान "कक्षा में जावास्क्रिप्ट में तत्व कैसे प्राप्त करें?"

यह कोड सभी ब्राउज़रों में काम करना चाहिए।

 function replaceContentInContainer(matchClass, content) { var elems = document.getElementsByTagName('*'), i; for (i in elems) { if((' ' + elems[i].className + ' ').indexOf(' ' + matchClass + ' ') > -1) { elems[i].innerHTML = content; } } } 

जिस तरह से यह काम करता है वह दस्तावेज के सभी तत्वों के माध्यम से पाशन करके और मेल क्लास के लिए अपनी कक्षा सूची खोज matchClass । अगर कोई मैच पाया जाता है, तो सामग्री बदल जाती है।

jsFiddle उदाहरण, वेनिला जेएस का उपयोग (यानी कोई ढांचा नहीं)

बेशक, सभी आधुनिक ब्राउज़र अब निम्न सरल तरीके का समर्थन करते हैं:

 var elements = document.getElementsByClassName('someClass'); 

लेकिन चेतावनी दी कि यह IE8 या इससे पहले के साथ काम नहीं करता है http://caniuse.com/getelementsbyclassname देखें

साथ ही, सभी ब्राउज़रों को शुद्ध NodeList वापस नहीं लौटाएगा जैसे वे चाहते हैं।

आप संभवतः अब भी अपने पसंदीदा क्रॉस-ब्राउज़र लाइब्रेरी का उपयोग कर बेहतर हैं।

 document.querySelectorAll(".class"); 

वह उस "आधुनिक" ब्राउज़र में काम करेगा जो उस विधि को लागू करते हैं।

 function ReplaceContentInContainer(selector, content) { var nodeList = document.querySelectorAll(selector); for (var i = 0, length = nodeList.length; i < length; i++) { nodeList[i].innerHTML = content; } } ReplaceContentInContainer(".theclass", "HELLO WORLD"); 

यदि आप पुराने ब्राउज़र्स के लिए समर्थन देना चाहते हैं, तो आप सिल्ले (4 केबी मिनी + जीज़िप) या पेप्पी (10 के मिनी) जैसे स्टैंडअलोन चयनकर्ता इंजन को लोड कर सकते हैं और यदि मूल क्वेरीसिक्लर विधि नहीं मिली है तो इसे वापस आ सकते हैं।

क्या यह एक चयनकर्ता इंजन को लोड करने के लिए अधिक है, ताकि आप एक विशिष्ट वर्ग के तत्व प्राप्त कर सकें? शायद। हालांकि, स्क्रिप्ट उतनी बड़ी नहीं है, और आप अपने स्क्रिप्ट के कई अन्य स्थानों में चयनकर्ता इंजन उपयोगी पाएंगे।

सरल और आसान तरीका

 var cusid_ele = document.getElementsByClassName('custid'); for (var i = 0; i < cusid_ele.length; ++i) { var item = cusid_ele[i]; item.innerHTML = 'this is value'; } 

मुझे आश्चर्य है कि नियमित अभिव्यक्तियों का उपयोग करने के लिए कोई जवाब नहीं है। यह बहुत अधिक है एंड्रयू का जवाब , RegExp.test बजाय RegExp.test का उपयोग करते हुए, क्योंकि यह कई ऑपरेशन के लिए बेहतर प्रदर्शन करता है, जेएसपीएफएफ परीक्षणों के अनुसार।
यह आईई 6 पर भी समर्थित है ।

 function replaceContentInContainer(matchClass, content) { var re = new RegExp("(?:^|\\s)" + matchClass + "(?!\\S)"), elems = document.getElementsByTagName('*'), i; for (i in elems) { if (re.test(elems[i].className)) { elems[i].innerHTML = content; } } } replaceContentInContainer("box", "This is the replacement text."); 

अगर आप वही कक्षा (एसएएस) की बार-बार जांच करते हैं, तो आप स्ट्रिंग के बजाए, अन्य जगहों (प्रीकंपल) रेग्युलर एक्सप्रेशंस को स्टोर करके और फ़ंक्शन में सीधे उन्हें पास करके इसे बेहतर बना सकते हैं।

 function replaceContentInContainer(reClass, content) { var elems = document.getElementsByTagName('*'), i; for (i in elems) { if (reClass.test(elems[i].className)) { elems[i].innerHTML = content; } } } var reBox = /(?:^|\s)box(?!\S)/; replaceContentInContainer(reBox, "This is the replacement text."); 

यह बहुत ज्यादा किसी भी ब्राउज़र में काम करना चाहिए …

 function getByClass (className, parent) { parent || (parent=document); var descendants=parent.getElementsByTagName('*'), i=-1, e, result=[]; while (e=descendants[++i]) { ((' '+(e['class']||e.className)+' ').indexOf(' '+className+' ') > -1) && result.push(e); } return result; } 

आप इसे इस तरह से उपयोग करने में सक्षम होना चाहिए:

 function replaceInClass (className, content) { var nodes = getByClass(className), i=-1, node; while (node=nodes[++i]) node.innerHTML = content; } 
 var elems = document.querySelectorAll('.one'); for (var i = 0; i < elems.length; i++) { elems[i].innerHTML = 'content'; }; 

मुझे लगता है कि यह मूल विकल्प नहीं था जब यह मूल रूप से पूछा गया था, लेकिन अब आप document.getElementsByClassName(''); उपयोग कर सकते हैं। document.getElementsByClassName(''); । उदाहरण के लिए:

 var elements = document.getElementsByClassName(names); // or: var elements = rootElement.getElementsByClassName(names); 

अधिक के लिए एमडीएन दस्तावेज़ीकरण देखें।

मुझे लगता है जैसे कुछ:

 function ReplaceContentInContainer(klass,content) { var elems = document.getElementsByTagName('*'); for (i in elems){ if(elems[i].getAttribute('class') == klass || elems[i].getAttribute('className') == klass){ elems[i].innerHTML = content; } } } 

काम करेगा

ऊपर ColcCold के जवाब पर विस्तृत करने के लिए, यह कोड ही है:

 function getElementsByClassName(classname, node){ if (!node) { node = document.getElementsByTagName('body')[0]; } var a = [], re = new RegExp('\\b' + classname + '\\b'); els = node.getElementsByTagName('*'); for (var i = 0, j = els.length; i < j; i++) { if (re.test(els[i].className)) { a.push(els[i]); } } return a; } 

जब कुछ तत्व आईडी की कमी रखते हैं, तो मैं इस तरह jQuery का उपयोग करता हूं:

 $(document).ready(function() { $('.myclass').attr('id', 'myid'); }); 

यह एक अजीब समाधान हो सकता है, लेकिन हो सकता है कि कोई इसे उपयोगी खोज सके।