2012-07-10 6 views
7

जावास्क्रिप्ट में, id किसी तत्व के (String प्रारूप में) दिए गए, मैं यह कैसे जांच सकता हूं कि तत्व के id को ड्रॉप डाउन सूची तत्व या टेक्स्ट इनपुट तत्व से संदर्भित किया गया है या नहीं?मैं यह कैसे देख सकता हूं कि कोई तत्व ड्रॉप डाउन सूची तत्व या टेक्स्ट आईडी तत्व है, इसकी आईडी दी गई है?

समारोह true लौटना चाहिए अगर id सूची (<select>) तत्व है, या एक पाठ इनपुट तत्व एक ड्रॉप डाउन को संदर्भित करता है, और false अन्यथा।

उत्तर

13

उपयोग करके देखें: document.getElementById('idNameGoesHere').tagName

तो समारोह हो सकता है:

function isSelectOrTextField(idName) { 
    var element = document.getElementById(idName); 
    if(element.tagName === 'SELECT') {return true;} 
    if(element.tagName === 'INPUT' && element.type === 'text') {return true;} 
    return false; 
} 

आप इस विस्तृत कर सकते हैं और साथ ही <textarea> के लिए जाँच करने के लिए ।

संपादित करें: या के रूप में यह nodeName उपयोग कर रहा है और बेहतर स्वरूपित है jbabey के answer चुनें।

जाहिरा तौर पर nodeName has wider browser support.

+0

यदि यह थोड़ा विस्तार किया गया तो यह एक अच्छा जवाब होगा। – jbabey

+1

इसका लाभ यह है कि यह jquery का उपयोग नहीं कर रहा है। –

20

आप पहले से ही jQuery को शामिल किया है, तो आप उपयोग कर सकते हैं the is function:

$('#myid').is('input, select') 

या शायद

$('#myid').is('input, textarea, select') 

अगर आप भी पाठ क्षेत्र शामिल करना चाहते हैं

या

$('#myid').is('input:not([type="button"]), textarea, select') 

(यह एक सच है यदि यह एक टेक्स्टर या ड्रॉपडाउन या इनपुट है जो बटन नहीं है)।

आपकी क्वेरी को आपकी सटीक आवश्यकताओं के अनुसार अनुकूलित करने के लिए jquery selectors की पूरी शक्ति है।

प्रदर्शन: http://jsfiddle.net/ELuEJ/ (एचटीएमएल बदलने की कोशिश)

+0

कोई jQuery का उल्लेख किया। – jbabey

0
$('#myId')[0].tagName 

आप डोम तत्व पुनर्प्राप्त और फिर टैगनाम

जाँच
+0

कोई jQuery का उल्लेख नहीं किया गया। – jbabey

3

आप इस निर्धारित करने के लिए डोम तत्वों की nodeName और type गुणों का उपयोग कर सकते हैं कर सकते हैं। कोई बाहरी पुस्तकालयों की आवश्यकता नहीं है।

var isSelectOrTextInput = function (element) { 
    var nodeName = element.nodeName; 

    return nodeName === 'SELECT' || 
     (nodeName === 'INPUT' && 
     element.type.toLowerCase() === 'text'); 
}; 

कार्य नमूना: http://jsfiddle.net/ytHQD/

संबंधित मुद्दे