jQuery: चयनित तत्व टैग नाम प्राप्त करें


641

क्या टैग नाम पाने का एक आसान तरीका है?

उदाहरण के लिए, यदि मुझे $('a')किसी फंक्शन में दिया जाता है , तो मैं प्राप्त करना चाहता हूं 'a'


जवाबों:


1032

आप कॉल कर सकते हैं .prop("tagName")। उदाहरण:

jQuery("<a>").prop("tagName"); //==> "A"
jQuery("<h1>").prop("tagName"); //==> "H1"
jQuery("<coolTagName999>").prop("tagName"); //==> "COOLTAGNAME999"


यदि लिखना .prop("tagName")कठिन है, तो आप एक कस्टम फंक्शन बना सकते हैं जैसे:

jQuery.fn.tagName = function() {
  return this.prop("tagName");
};

उदाहरण:

jQuery("<a>").tagName(); //==> "A"
jQuery("<h1>").tagName(); //==> "H1"
jQuery("<coolTagName999>").tagName(); //==> "COOLTAGNAME999"


ध्यान दें कि टैग नाम कर रहे हैं, प्रथा के अनुसार, वापस लौटे बड़ा कर दिया है । यदि आप लौटे हुए टैग का नाम सभी लोअरकेस में रखना चाहते हैं, तो आप कस्टम फ़ंक्शन को इस तरह संपादित कर सकते हैं:

jQuery.fn.tagNameLowerCase = function() {
  return this.prop("tagName").toLowerCase();
};

उदाहरण:

jQuery("<a>").tagNameLowerCase(); //==> "a"
jQuery("<h1>").tagNameLowerCase(); //==> "h1"
jQuery("<coolTagName999>").tagNameLowerCase(); //==> "cooltagname999"

18
JQuery 1.6 के रूप में, यह होना चाहिए .prop
रॉकेट हज़मत

3
क्या पूंजीकरण सम्मेलन सभी ब्राउज़रों द्वारा अनुसरण किया जाता है? यदि नहीं, तो क्या jQuery इसे सामान्य करता है?
16

8
tagName DOM कल्पना का हिस्सा है और इसे हमेशा कैपिटल में रखा जाता है।
बृहस्पतिवार

ध्यान दें कि जो स्ट्रिंग वापस आ गई है वह CAPITAL LETTERS में है। यदि आप इसे "div" या "a" उदाहरण के लिए तुलना करने का प्रयास कर रहे हैं तो यह एक गोच हो जाएगा।
हार्टली ब्रॉडी

3
टैग नाम के परिणाम की तुलना करते समय उपयोग करना toLowerCase()या toUpperCase()सहायक हो सकता है prop('tagName')if($("my_selector").prop("tagName").toLowerCase() == 'div')याif($("my_selector").prop("tagName").toUpperCase() == 'DIV')
एस .ioniongane

99

आप DOM की nodeNameसंपत्ति का उपयोग कर सकते हैं :

$(...)[0].nodeName

धन्यवाद। महान काम करता है - हालाँकि मैं अधिक jQueryish संस्करण का उपयोग करूँगा क्योंकि मैं इस समय jQuery की दुनिया में हूँ।
विन्यासकर्ता

6
शुद्ध जेएस समाधान (जैसे यह) आम तौर पर jQuery वालों से बेहतर होता है, खासकर अगर वे ब्राउज़र संगतता समस्याओं से पीड़ित नहीं होते हैं या बहुत अधिक क्रिया होते हैं।
स्टीवन लू

25
... और विशेष रूप से उन ब्राउज़र असंगतता के मुद्दों के कारण, jQuery वाले अक्सर बेहतर होते हैं यदि कोई समाधान निकाल रहा है और जो ब्राउज़र-असंगतताओं के लिए बाहर देखने के लिए अच्छी तरह से वाकिफ नहीं है। ;)
स्कॉट स्टैफोर्ड

4
मैं इसे बेहतर मानता हूं क्योंकि इससे कोई फर्क नहीं पड़ता कि jQuery का संस्करण क्या है, यह समाधान सभी संस्करणों पर काम करता है। +1
स्टिजन डे विट

7
विशेष रूप से यदि आप प्रत्येक में हैं () - स्थिति की तरह, जहां आपको एक संपत्ति प्राप्त करने के लिए तत्व को वापस एक jquery ऑब्जेक्ट में डालना होगा जो पहले से ही था, जैसे $(this).prop('tagname')। this.nodeName अक्सर अधिक कुशल होता है। +1
समान्य



23

यह अभी तक एक और तरीका है:

$('selector')[0].tagName

अच्छा है! नोडनेम की तुलना में और भी छोटा। : पी
डेनिस 98

11

आपको उपयोग नहीं करना चाहिए jQuery('selector').attr("tagName").toLowerCase(), क्योंकि यह केवल Jquery के पुराने संस्करणों में काम करता है।

आप उपयोग कर सकते हैं $('selector').prop("tagName").toLowerCase()यदि आप निश्चित हैं कि आप jQuery के संस्करण> = संस्करण 1.6 का उपयोग कर रहे हैं।


ध्यान दें :

आप सोच सकते हैं कि हर कोई अब (जनवरी 2016) तक jQuery 1.10+ या कुछ का उपयोग कर रहा है, लेकिन दुर्भाग्य से वास्तव में ऐसा नहीं है। उदाहरण के लिए, बहुत से लोग आज भी Drupal 7 का उपयोग कर रहे हैं, और आज तक Drupal 7 की हर आधिकारिक रिलीज़ में डिफ़ॉल्ट रूप से jQuery 1.4.4 शामिल है।

इसलिए यदि आप निश्चित रूप से नहीं जानते हैं कि क्या आपकी परियोजना jQuery 1.6+ का उपयोग कर रही है, तो उन विकल्पों में से एक का उपयोग करने पर विचार करें जो jQuery के सभी संस्करणों के लिए काम करते हैं:

विकल्प 1 :

jQuery('selector')[0].tagName.toLowerCase()

विकल्प 2

jQuery('selector')[0].nodeName.toLowerCase()

0

नोडनेम आपको अपरकेस में टैग का नाम देगा, जबकि लोकलनेम आपको निचला केस देगा।

$("yourelement")[0].localName 

आपको दे देंगे: आप के बजाय आपत्ति

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