मैं जावास्क्रिप्ट में HTML तत्व के प्रकार को कैसे निर्धारित कर सकता हूं?


190

मुझे जावास्क्रिप्ट में HTML तत्व के प्रकार को निर्धारित करने के लिए एक तरीका चाहिए। इसके पास आईडी है, लेकिन तत्व खुद <div>एक <form>क्षेत्र, एक क्षेत्र <fieldset>, आदि हो सकता है , मैं इसे कैसे प्राप्त कर सकता हूं?

जवाबों:


290

nodeNameवह विशेषता है जिसकी आपको तलाश है। उदाहरण के लिए:

var elt = document.getElementById('foo');
console.log(elt.nodeName);

ध्यान दें कि nodeNameतत्व नाम कैपिटल और बिना कोष्ठक के वापस लौटाया जाता है, जिसका अर्थ है कि यदि आप जांचना चाहते हैं कि कोई तत्व ऐसा तत्व है जिसे <div>आप निम्नानुसार कर सकते हैं:

elt.nodeName == "DIV"

हालांकि यह आपको अपेक्षित परिणाम नहीं देगा:

elt.nodeName == "<div>"

29
मैं इसे इस तरह से करने की सलाह देता हूं: अगर (elt.nodeName.toLowerCase () === "div") {...} इस तरह से, अगर किसी कारण से यह अपरकेस अक्षरों में नहीं लौटाया जाता है (लोअरकेस या मिश्रित), तो आप इसे बदलना नहीं पड़ेगा और यह कोड अभी भी ठीक काम करेगा।
theCuBeMan

6
@TheCuBeMan के जवाब में, toLowerCase () का उपयोग करने का मतलब है कि आपको यह सुनिश्चित करने की भी ज़रूरत है कि नोडनेम मौजूद है (यदि यह सभी संभव elt नहीं है, वास्तव में, एक तत्व):if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
Erik Koopmans

किस बारे में localName?
बोमा

46

किस बारे में element.tagName?

tagNameMDN पर डॉक्स भी देखें ।


4
टाइमस्टैम्प के अनुसार आपने मुझे 1 सेकंड से भी कम समय में हरा दिया!
आंखों की रोशनी

27
QuirksMode से: मेरी सलाह है कि TagName का उपयोग बिल्कुल न करें। नोडनेम में टैगनाम की सभी कार्यक्षमताएँ हैं, साथ ही कुछ और। इसलिए नोडनेम हमेशा बेहतर विकल्प है।
bdukes

7

कभी-कभी आप चाहते हैं element.constructor.name

document.createElement('div').constructor.name
// HTMLDivElement

document.createElement('a').constructor.name
// HTMLAnchorElement

document.createElement('foo').constructor.name
// HTMLUnknownElement

7

आप सामान्य कोड निरीक्षण का उपयोग कर सकते हैं instanceof:

var e = document.getElementById('#my-element');
if (e instanceof HTMLInputElement) {}         // <input>
elseif (e instanceof HTMLSelectElement) {}    // <select>
elseif (e instanceof HTMLTextAreaElement) {}  // <textarea>
elseif (  ... ) {}                            // any interface

इंटरफेस की पूरी सूची के लिए यहां देखें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.