2011-12-24 348 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中包含'