39

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

虚拟代码:

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

selected如果 col 等于“screwdriver”,我想在 col 的值之后添加。

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

任何想法,再一次,对新手感到抱歉。

4

5 回答 5

70
'<option value="' + col + '"'+ (col === "screwdriver" ? " selected " : "") +'>Very roomy</option>';
于 2011-12-24T04:09:44.577 回答
3
var x = '<option value="' + col + '"'
if (col == 'screwdriver') x += ' selected';
x += '>Very roomy</option>';
于 2011-12-24T04:01:47.483 回答
3

像这样的东西:

for (/* stuff */)
{
    var x = '<option value="' + col + '" '
        + (col === 'screwdriver' ? 'selected' : '')
        + '>Very roomy</option>';
    // snip...
}
于 2011-12-24T04:02:14.260 回答
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);
于 2011-12-24T04:33:51.450 回答
0

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

javascript:{ var col = 'screwdriver'; var x = '<option value="' + col + '"' + ((col == 'screwdriver') ? ' selected' : '') + '>Very roomy</option>'; alert(x); }
于 2011-12-24T04:08:42.803 回答