2011-12-24 13 views
23

वीबी से आ रहा है, जावास्क्रिप्ट को लटका पाने के लिए बहुत आसान नहीं है। कृपया नकारात्मक न हों, मैंने कोशिश की है और लोड की खोज की है लेकिन बिना किसी किस्मत के। बीटीडब्लू, मैं जेएस में Select विकल्प सूची से शुरू हुआ ड्रॉपडाउन नियंत्रण बना रहा हूं।जावास्क्रिप्ट: IIF जैसे कथन

डमी कोड:

var col = 'tardis'; 
var x = '<option value="' + col + '">Very roomy</option>'); 

मैं col का मूल्य के बाद selected जोड़ने के लिए ही करता है, तो col 'पेचकश' के बराबर है चाहते हैं।

मैंने आईएफ कथन का उपयोग करने की कोशिश की है? और: लेकिन मेरे सिर को इसके चारों ओर नहीं लग रहा है। झूठा मूल्य के रूप में '' होने के नाते काम नहीं करता है। कोई आइटम नहीं चुना गया है और सूची खाली है। आईएफ कथन और सभी कार्यों को हटा दें।

कोई भी विचार और फिर, न्यूब-नेस के लिए खेद है।

+1

कृपया हमें दिखाएं कि आपने क्या प्रयास किया और यह क्यों काम नहीं करता है। – deceze

+0

सबसे पहले आपको जिस तरह से जानना है, ब्राउज़र कंसोल तक पहुंचने के बारे में है। क्रोम में Ctrl + Shift + J, या IE9 + में F12 या फ़ायरफ़ॉक्स में फ़ायरबग प्लगइन। आप कंसोल में कोड आज़मा सकते हैं, अपना पूरा एचटीएमएल पेज देख सकते हैं और उस पर तत्व चुन सकते हैं, और अपने ऐप से लॉग देख सकते हैं (सतर्क() के बजाय console.log (.... जो कुछ भी आप चाहते हैं ...) का उपयोग करें। जावास्क्रिप्ट एक बहुत ही कम अवधारणा गिनती के साथ एक साधारण भाषा है लेकिन इससे बचने के लिए बहुत सारे मिलचास हैं। मेरी प्रस्तुति देखें: http://dl.dropbox.com/u/108084/all-of-javascript/example_scripts.html प्रश्नों के साथ मेरी जानकारी से मुझे ट्विटर/ईमेल करने के लिए स्वतंत्र महसूस करें –

उत्तर

49
'<option value="' + col + '"'+ (col === "screwdriver" ? " selected " : "") +'>Very roomy</option>'; 
+0

क्या आप सुनिश्चित हैं कि 3 = (===) संकेत? कुछ वेब संसाधनों में मैंने पढ़ा है कि आपको केवल 2 = (==) रखना चाहिए। कृपया इस मामले को स्पष्ट करें। http://www.smipple.net/snippet/dsheardown/Javascript%20IIF%20example –

+2

@YoustayIgo जावास्क्रिप्ट में === 'का मतलब है" सख्त समानता "जबकि' == 'का मतलब है" जबरदस्ती के साथ समानता "। इस मामले में आपको 'कोल' के लिए एक मूल्य खोजने के लिए कठोर दबाव डाला जाएगा, जहां सामान्य रूप से आप '===' संस्करण को प्राथमिकता देना चाहते हैं जब तक कि आप विशेष रूप से जबरदस्ती नहीं चाहते हैं। इस पर अधिक विचारों के लिए [जावास्क्रिप्ट द गुड पार्ट्स] देखें (http://bdcampbell.net/javascript/book/javascript_the_good_parts.pdf) जो मूल रूप से कई जावास्क्रिप्ट डेवलपर्स के लिए बाइबल है। (इसमें कई असहमतिएं और गुट हैं लेकिन अधिकांश आम तौर पर सही विचार से सहमत हैं) –

+0

स्पष्टीकरण के लिए Thx :) –

3
var x = '<option value="' + col + '"' 
if (col == 'screwdriver') x += ' selected'; 
x += '>Very roomy</option>'; 
3

कुछ इस तरह:

for (/* stuff */) 
{ 
    var x = '<option value="' + col + '" ' 
     + (col === 'screwdriver' ? 'selected' : '') 
     + '>Very roomy</option>'; 
    // snip... 
} 
0

मैं अपने URL बार में इस टाइप किया:

javascript:{ var col = 'screwdriver'; var x = '<option value="' + col + '"' + ((col == 'screwdriver') ? ' selected' : '') + '>Very roomy</option>'; alert(x); } 
2

अपने अंतिम लक्ष्य अपने पृष्ठ के लिए तत्वों को जोड़ने के लिए, बस में हेरफेर है सीधे डोम। एचटीएमएल बनाने की कोशिश करने के लिए स्ट्रिंग कॉन्सटेनेशन का उपयोग न करें - क्या दर्द! , देखें एचटीएमएल कि आपके तत्व का प्रतिनिधित्व करता है के बजाय कितना अधिक सरल यह सिर्फ अपने तत्व बनाने के लिए है:

var x = document.createElement("option"); 
x.value = col; 
x.text = "Very roomy"; 
x.selected = col == "screwdriver"; 

फिर, बाद में जब आप के बजाय पेरेंट तत्व की innerHTML स्थापित करने की, अपने पृष्ठ में तत्व डाल , appendChild() पर कॉल करें:

mySelectElement.appendChild(x); 
+0

@RobG - HTML में '

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