2011-06-14 12 views
27

प्राप्त करें मैं jQuery .change() फ़ंक्शन को ट्रिगर करने वाले तत्व के id कैसे प्राप्त कर सकता हूं? फ़ंक्शन स्वयं ठीक से काम करता है, लेकिन मुझे id="next" के साथ चयनकर्ता के लिए एक विशिष्ट कार्रवाई की आवश्यकता है।

$("select").change(function() { 
    [...snip....] 
    alert($(this).attr('id')); // <---- not working 
} 

कोई विचार क्यों ऊपर चेतावनी काम नहीं कर रही है?

+0

ऐसा लगता है कि यह मेरे लिए काम करता है ... http://jsfiddle.net/interdream/nGtjR/1/ –

+0

आप कुछ चुनिंदा तत्व अपने परिवर्तन हैंडलर से जुड़ा हुआ है की आईडी प्राप्त करने की कोशिश कर रहे हैं? – kinakuta

उत्तर

57

this डीओएम तत्व है जिस पर ईवेंट को लगाया गया था। this.id इसकी आईडी है। इसे प्राप्त करने के लिए jQuery उदाहरण में इसे लपेटने की आवश्यकता नहीं है, id संपत्ति सभी ब्राउज़रों पर विश्वसनीय रूप से विशेषता को दर्शाती है।

$("select").change(function() {  
    alert("Changed: " + this.id); 
} 

Live example

आप अपने कोड नमूने में यह नहीं कर रहे हैं, लेकिन अगर आप कई प्रपत्र तत्वों के साथ एक कंटेनर देख रहे थे, कि तुम कंटेनर की आईडी देना होगा। आप तत्व, जिसने ईवेंट ट्रिगर आईडी चाहते हैं तो आपको मिल सकता है कि event object'starget संपत्ति से:

$("#container").change(function(event) { 
    alert("Field " + event.target.id + " changed"); 
}); 

Live example

(jQuery सुनिश्चित करता है कि change घटना बुलबुले, यहां तक ​​कि IE पर जहां यह नहीं करता है 'natively।)

+1

आपको क्या लगता है कि '.id' विश्वसनीय है? – ajax333221

+1

@ AJAX333221: क्या आपके पास अन्यथा सोचने का कोई कारण है? मैंने आईई 5.5 आगे, क्रोम और फ़ायरफ़ॉक्स में इसे शुरू करने के बाद, पुराने नेटस्केप नेविगेटर, ओपेरा को एक दशक से अधिक समय तक सफारी, कॉन्करर, मिडोरी इत्यादि का उपयोग किया है। यह [निर्दिष्ट] है (http: //www.w3 डॉम 2 एचटीएमएल में .org/TR/DOM-Level-2-HTML/html.html # ID-63534901), और यह [बहुत प्रारंभिक संस्करणों] में है (http://www.w3.org/TR/1999/CR- उस दस्तावेज़ के डोम-लेवल -2-19991210/html.html # आईडी -63534901)। मैं कहूंगा कि आपको सामान्य रूप से ब्राउज़र (या शायद सीमित) उपयोग नहीं मिलेगा जो तत्वों पर 'आईडी' को प्रतिबिंबित नहीं करता है - लेकिन मुझे आपकी टिप्पणी की उत्पत्ति में रूचि है। :-) –

+0

@T ठीक है, सच यह है कि मैं इसके बारे में संदर्भों के लिए घंटों के लिए देख रहा था, आपकी पोस्ट सबसे अच्छी थी, लेकिन फिर भी मुझे संदर्भों के साथ कुछ पुष्टि चाहिए: -जे – ajax333221

5

क्या आपका मतलब है कि "अगली" आईडी के साथ एक चुनिंदा तत्व के लिए आपको कुछ विशिष्ट स्क्रिप्ट करने की आवश्यकता है?

$("#next").change(function(){ 
    //enter code here 
}); 
संबंधित मुद्दे