2010-01-26 14 views
9

का उपयोग कर जावास्क्रिप्ट के साथ एक चयन तत्व के लिए एक विकल्प जोड़ना प्रोटोटाइप का उपयोग कर चयन तत्व में गतिशील रूप से एक विकल्प जोड़ना चाहते हैं।प्रोटोटाइप लाइब्रेरी

वहाँ ऐसा करने के कई अलग-अलग तरीके हैं, विकल्पों के साथ सब कुछ करने के लिए। आदि आदि ... क्रॉस-ब्राउज़र तरीकों के रास्ते में बहुत कुछ नहीं देखा गया।

इसे जितना संभव हो उतना हल्का वजन होना चाहिए।

यही वह है जो मुझे अब तक मिला है। यह सिर्फ उन विकल्पों को जोड़ रहा है जिन पर मैं फंस गया हूं:

var oNewOption = new Element('option').value=vItem; 
oNewOption.text=vItem; 

कोई भी विचार किसी को भी?

अग्रिम धन्यवाद!

// Assuming a select element stored in a variable called 'select' 
select.options[select.options.length] = new Option("Option text", "optionValue"); 

उत्तर

11
select.insert(new Element('option', {value: myValue}).update(myLabel)); 

डालने संलग्न कर देता है:

+0

यह जो मैंने करना चाहता था उसके अनुसार काम किया, हालांकि किसी कारण से .insert() तत्व को अद्यतन करने के लिए वापस नहीं लौटा रहा था: डालें (विकल्प) .update (myLabel) काम नहीं किया। तो इसे बदल दिया: option.update (myLabel); चुनें।सम्मिलित (विकल्प); कार्य एक इलाज है। – jamesmhaley

+0

यदि आप बारीकी से देखते हैं, तो _update_ _nert_ द्वारा लौटाई गई वस्तु पर है, न कि _insert_ द्वारा लौटाया गया। – Alsciende

+0

यह विधि आईई 7 में काम करती है! –

25

प्रोटोटाइप के लिए कोई ज़रूरत नहीं है, यह बस के रूप में निम्नलिखित समय सम्मानित विधि है कि 1990 के मध्य से हर प्रमुख डेस्कटॉप ब्राउज़र में काम करता है के साथ आसान हो जाएगा की सामग्री के लिए ऑब्जेक्ट का चयन करें, अद्यतन नई विकल्प ऑब्जेक्ट की सामग्री अपडेट करता है।

क्लासिक तरीके से वास्तव में बेहतर नहीं है, हालांकि।

+0

धन्यवाद, लेकिन प्रोटोटाइप का उपयोग करने के लिए देख रहा था क्योंकि बाकी कोड प्रोटोटाइप का उपयोग कर रहा है! प्रोटोटाइप का उपयोग करते समय भविष्य में इसे ध्यान में रखेगा एक आवश्यकता नहीं है! – jamesmhaley

+8

प्रोटोटाइप सिर्फ एक पुस्तकालय है। सब कुछ के लिए इसका उपयोग करने की कोई आवश्यकता नहीं है, और आपके प्रोटोटाइप कोड के साथ नियमित डीओएम विधियों को मिश्रण करने से आपको कुछ भी रोक नहीं है। –

+4

+1। 'select.options.add (नया विकल्प ('foo', 'bar')) 'भी बहुत अच्छी तरह से समर्थित है। –

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