2009-01-08 8 views
9

मैं एक < विकल्प के लिए एक < चयन > तत्व जहां < विकल्प > तत्व का पाठ एक HTML इकाई शामिल करने के लिए > तत्व जोड़ना चाहते हैं: & mdash;मैं जावास्क्रिप्ट में <option> गतिशील रूप से कैसे बना सकता हूं जिसमें एक HTML इकाई (- ... «) है?

HTML में, कोड इस प्रकार दिखाई देगा:

<select name="test" id="test"> 
    <option value="">&mdash; Select One &mdash;</option> 
</select> 

मेरा JavaScript कोड इस तरह दिखता है:,

function selectOne() { 
    var e = document.getElementById('test'); 
    e.options[0] = new Option('&mdash; Select One &mdash;', ''); 
} 

हालांकि के रूप में आप अगर आप इस परीक्षण देखेंगे, & mdash; बच निकला मैं एक ही परिणाम था जब मैंने कोशिश की:

e.options[o].text = '&mdash; Select One &mdash;'; 

(मनाया व्यवहार इंटरनेट   Explorer 7 में था ... फ़ायरफ़ॉक्स, सफ़ारी, आदि के साथ परीक्षण नहीं किया - इंटरनेट एक्सप्लोरर 7   केवल ब्राउज़र की आवश्यकता है ।) इस समय

+0

क्या कोई कारण है कि "-" बच जाना चाहिए? –

+0

मुझे किसी अन्य तरीके से आसानी से पता नहीं था (आसानी से) mdash जोड़ें। अगर यह एक साधारण एन-डैश था ... मैं बस कीबोर्ड डैश/माइनस कुंजी का उपयोग करता हूं। मुझे लगता है कि मुझे शायद इसके बजाय «उदाहरण का उदाहरण इस्तेमाल करना चाहिए था। –

उत्तर

16

मैं सिर्फ मैं एक यूनिकोड जावास्क्रिप्ट भागने इस्तेमाल कर सकते हैं एहसास हुआ:

e.options[0] = new Option('\u2014 Select One \u2014', ''); 
+0

इस समाधान और चेतन के समाधान दोनों काम करते हैं। यह सिर्फ उस शैली पर निर्भर करता है जिस पर आप पसंद करते हैं। मेरे लिए, मैं वापस जाने और चेतन के समाधान की तरह इसे बदलने के बजाय मूल्य को एक बार सेट करना पसंद करता हूं। –

6

आप इकाई से बचने के लिए की जरूरत नहीं है - यह इस तरह काम करता है:

function selectOne() { 
     var e = document.getElementById('test'); 
     e.options[0] = new Option('— Select One —', ''); 
} 
+0

सच - लेकिन मैं किसी भी HTML इकाई के बारे में सोच रहा था ... जैसे « –

+0

यह किसी भी HTML इकाई के लिए काम करता है, हालांकि यह एन्कोडिंग समस्याओं में चला सकता है। आपका यूनिकोड एस्केप अनुक्रम शायद सबसे पोर्टेबल समाधान है। –

1

text संपत्ति अनचाहे नहीं होती है, क्योंकि इसका शाब्दिक रूप से लिया जाना है। यदि आप innerHTML का उपयोग करते हैं, तो संस्थाएं संबंधित वर्णों में परिवर्तित हो जाती हैं।

e.options[o].innerHTML = '&mdash; Select One &mdash;'; 
संबंधित मुद्दे

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