2011-12-24 512 views
23

來自VB,JavaScript並不是很容易獲得。請不要負面,我已經試過並搜索過負載,但沒有運氣。順便說一句,我創建一個下拉控件從JS的Select選項列表初始化。JavaScript:IIF like語句

虛擬代碼:

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

我想山坳值後添加selected只有當山坳等於「螺絲刀」。

我試過使用IF語句?和:但似乎無法讓我的頭在附近。有「作爲虛假價值不起作用。沒有項目被選中,列表爲空。刪除IF語句和所有作品。

任何想法和再次,爲新鮮感抱歉。

+1

請告訴我們您嘗試過什麼,以及爲什麼它不起作用。 – deceze 2011-12-24 04:01:19

+0

你需要知道的第一件事就是訪問瀏覽器控制檯。 Chrome中的Ctrl + Shift + J或IE9 +中的F12或Firefox中的Firebug插件。您可以在控制檯中嘗試代碼,查看您的整個HTML頁面並選擇它上面的元素,並從您的應用程序查看日誌(使用console.log(....您想要的任何內容...)而不是alert())。 Javascript是一種簡單的語言,其概念數量非常少,但需要避免很多陷阱。查看我的演示文稿:http://dl.dropbox.com/u/108084/all-of-javascript/example_scripts.html隨時twitter /電子郵件我從我的信息有問題 – 2011-12-24 16:51:59

回答

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

你確定有3 = (===)標誌?在一些網絡資源中,我讀過你應該只寫2 =(==)。請澄清此事。 http://www.smipple.net/snippet/dsheardown/Javascript%20IIF%20example – 2016-01-18 17:18:21

+2

@YoustayIgo在javascript'==='表示「嚴格平等」,而== ==意味着「與強制平等」。在這種情況下,你很難在'col'找到一個重要的值,一般而言,除非你特別需要強制轉換,否則你更喜歡'==='版本。有關更多的想法,請參閱[Javascript good part](http://bdcampbell.net/javascript/book/javascript_the_good_parts.pdf),它基本上是許多JavaScript開發人員的聖經。 (因爲有很多分歧和派系,但大多數人都同意它的正確觀點) – 2016-01-18 20:43:59

+0

Thx的澄清:) – 2016-01-21 19:07:22

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

我在網址欄中鍵入此:

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

如果你的最終目標是將元素添加到您的網頁,只是操縱直接的DOM。不要使用字符串連接來嘗試創建HTML - 這真是一種痛苦!看看它是如何更直接的只是創建你的元素,而不是代表你的元素的HTML:

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

然後,後來當你把元素在你的頁面,而不是設置父元素的innerHTML ,請致電appendChild()

mySelectElement.appendChild(x); 
+0

@RobG - 在HTML中包含'