Подтвердить что ты не робот

JavaScript: выражение типа IIF

Исходя из VB, JavaScript не очень легко получить. Пожалуйста, не отрицайте, я пробовал и искал грузы, но не повезло. BTW, я создаю выпадающий элемент, инициализированный из списка опций Select в JS.

Манекен:

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

Я хотел бы добавить selected после значения col ТОЛЬКО, если col равно "отвертке".

Я пытался использовать оператор IF с помощью? и: но не может показаться, что моя голова вокруг него. Наличие "как ложного значения" не работает. Элементы не выбраны, и список пуст. Удалите инструкцию IF и все работает.

Любые идеи и снова, извините за новичку.

4b9b3361

Ответ 1

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

Ответ 2

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...
}

Ответ 4

Если ваша конечная цель состоит в добавлении элементов на вашу страницу, просто манипулируйте DOM напрямую. Не используйте конкатенацию строк, чтобы попытаться создать HTML - какая боль! Посмотрите, насколько проще всего просто создать свой элемент, а не HTML, который представляет ваш элемент:

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

Затем, позже, когда вы поместите элемент на свою страницу, вместо установки innerHTML родительского элемента, вызовите appendChild():

mySelectElement.appendChild(x);

Ответ 5

Я набрал это в моей строке URL:

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