जावास्क्रिप्ट - उनके आईडी द्वारा खोज तत्व

यह टिप आपको दिखाएगी कि उनकी आईडी के आधार पर तत्वों की खोज कैसे करें। वह तब है जब उत्तरार्द्ध एक नियमित अभिव्यक्ति से मेल खाता है।

मुद्दा

आप पहले से ही getElementById (आईडी) विधि को जानते हैं, जिसका उपयोग किसी विशेष आईडी से संबंधित तत्व (क्योंकि आईडी जरूरी है) को वापस करने के लिए किया जाता है और getElementsByTagName (tagName) विधि है जो उल्लिखित टैग के साथ सभी तत्वों की एक सरणी देता है।

वैसे कुछ ऐसे मामले भी हैं जहाँ ये समाधान पर्याप्त नहीं हैं।

उदाहरण के लिए: आपके पास अपनी साइट पर वर्ग हैं: जब उपयोगकर्ता एक बटन पर क्लिक करता है, तो प्रत्येक वर्ग आकार बदलता है, प्रत्येक का अपना नया आकार होता है। इसलिए आपको उन्हें प्रबंधित करने के लिए उनके आईडी की एक सूची होनी चाहिए। दो समाधान उपलब्ध हैं:

हर बार जब आप एक वर्ग जोड़ते हैं, तो आप मैन्युअल रूप से आईडी की एक सूची बढ़ाते हैं।

आपके पास एक लूप है जो दस्तावेज़ों को खोजने के लिए वर्गों को खोजता है, इस प्रकार विधि सीधे कोड में फिट होती है। लेकिन सभी आईडी को कैसे पुनः प्राप्त करें, यह जानकर कि आपको वर्गों की सही संख्या (लूप नहीं) पता नहीं है और आपको नहीं पता कि वे पृष्ठ में कहां हैं?

उपाय

हम getElementByRegexId विधि का उपयोग कर रहे हैं। इस विधि के दो पैरामीटर हैं, अर्थात्:

आईडी से मेल खाने वाली नियमित अभिव्यक्ति।

[फेस] खोजे जाने वाले टैग का नाम। यदि कुछ भी इंगित नहीं किया गया है, तो सभी टैग को ध्यान में रखा जाएगा।

सिद्धांत सरल है: हम getElementsByTagName द्वारा पुनर्प्राप्त तत्वों के माध्यम से खोज करते हैं, आईडी और कुछ भी जो नियमित अभिव्यक्ति से मेल खाते हैं, का परीक्षण करते हैं, एक तालिका में जोड़ा जाता है:

 समारोह getElementsByRegexId (regexpParam, tagParam) {// Si aucun nom de balise n'est spécifié, cherche sur toutes les balises tagPar = (टैगपराम === अपरिभाषित)? '*': टैगपराम; var elementsTable = new Array (); के लिए (var i = 0; मैं 

उदाहरण:

 var divCarres = getElementsByRegexId (/ _ carre। * /, "div"); var tousLesCarres = getElementsByRegexId (/ _ carre। * /); 

पिछला लेख अगला लेख

शीर्ष युक्तियाँ