JQuery के साथ तत्व प्रकार प्राप्त करें


308

क्या यह संभव है, jQuery का उपयोग करके, jQuery के साथ एक तत्व के प्रकार का पता लगाने के लिए? उदाहरण के लिए, क्या तत्व एक div, स्पैन, चयन या इनपुट है?

उदाहरण के लिए, यदि मैं jQuery के साथ ड्रॉप-डाउन सूची में मानों को लोड करने की कोशिश कर रहा हूं, लेकिन समान स्क्रिप्ट रेडियो बटन के एक सेट में कोड उत्पन्न कर सकता है, तो क्या मैं कुछ ऐसा बना सकता हूं:

$('.trigger').live('click', function () {
   var elementType = $(this).prev().attr(WHAT IS IT);
});

ट्रिगर क्लास के साथ एक बटन के साथ एक ड्रॉप-डाउन सूची को देखते हुए , मेरा elementTypeचर selectबटन दबाए जाने पर वापस आ जाना चाहिए ।


आप rephrase कर सकते हैं? आप तत्व प्रकार से क्या मतलब है?
अब्दुल मुनीम


जवाबों:


558

तत्व को टाइप करना jQuery तरीका:

var elementType = $(this).prev().prop('nodeName');

jQuery के बिना भी ऐसा ही करना

var elementType = this.previousSibling.nodeName;

विशिष्ट तत्व प्रकार के लिए जाँच:

var is_element_input = $(this).prev().is("input"); //true or false

16
बस याद रखें कि .prop () फ़ंक्शन केवल jQuery 1.6 में जोड़ा गया था - आपको अपने द्वारा उपयोग किए जा रहे संस्करण को अपग्रेड करने की आवश्यकता हो सकती है!
xgretsch

पुराने jQuery 1.3.2 के साथ काम नहीं किया, इसलिए नवीनतम में अपग्रेड किया गया और यह ठीक काम किया।
दामोदर बाश्याल

2
जैसा कि यहां बताया गया है, 'टैगनेम' को 'नोडनेम' में बदलकर सुधार किया जा सकता है
काइल स्टोफ़लेट

1
@KyleStoflet - यह आप रहे हों तो सही लगता है, nodeName, तत्वों का समर्थन अधिक प्रकार करता है और समर्थन IE5.5 एक मुद्दा किसी भी अधिक नहीं होना चाहिए, तो मैं बदल रहा है के साथ कोई समस्या दिखाई देती है tagNameके लिए nodeNameऊपर जवाब में। दोनों तत्वों के लिए ठीक काम करेंगे, और बाद वाले टेक्स्टनॉड्स, विशेषताओं आदि पर भी काम करेंगे।
एडीनो

3
काम करता है, लेकिन मैं प्रचलित () द्वारा थोड़ा भ्रमित हो गया, जो प्रश्न में उदाहरण कोड के लिए विशिष्ट है। मूल रूप से,$(this).is("input");
फंकी

56

यह भी आप उपयोग कर सकते हैं:

$("#elementId").get(0).tagName

26

आपको tagNameसंपत्ति का उपयोग करना चाहिए और attr('type')इनपुट के लिए


एक उदाहरण इस टिप्पणी को और मजबूत बना देगा।
Justapigeon

16

जैसा कि डिस्टदेव ने कहा था, आपको अभी भी इनपुट प्रकार में अंतर करने की आवश्यकता है। यानी,

$(this).prev().prop('tagName');

आपको बताएगा input, लेकिन वह चेकबॉक्स / पाठ / रेडियो के बीच अंतर नहीं करता है। यदि यह एक इनपुट है, तो आप उपयोग कर सकते हैं

$('#elementId').attr('type');

आपको चेकबॉक्स / टेक्स्ट / रेडियो बताने के लिए, ताकि आप जान सकें कि यह किस प्रकार का नियंत्रण है।




3

टैगनाम पर नोडेनम का उपयोग करें:

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

डोम कोर देखें

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