JavaScript:IIF喜欢声明

时间:2011-12-24 03:59:01

标签: javascript inline iif

来自VB,JavaScript并不是很容易掌握。请不要消极,我已经尝试并搜索了负载,但没有运气。顺便说一下,我正在创建一个从JS中的Select选项列表初始化的下拉控件。

虚拟代码:

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

如果col等于'螺丝刀',我想在col ONLY的值之后添加selected

我尝试过使用IF语句?并且:但似乎无法理解它。将''作为假值不起作用。没有选择任何项目,列表为空白。删除IF语句和所有工作。

任何想法,再次,抱歉新手。

5 个答案:

答案 0 :(得分:56)

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

答案 1 :(得分:3)

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

答案 2 :(得分:3)

这样的事情:

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

答案 3 :(得分: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);

答案 4 :(得分:0)

我在网址栏中输入了这个:

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