Ответ 1
'<option value="' + col + '"'+ (col === "screwdriver" ? " selected " : "") +'>Very roomy</option>';
Исходя из VB, JavaScript не очень легко получить. Пожалуйста, не отрицайте, я пробовал и искал грузы, но не повезло. BTW, я создаю выпадающий элемент, инициализированный из списка опций Select
в JS.
Манекен:
var col = 'tardis';
var x = '<option value="' + col + '">Very roomy</option>');
Я хотел бы добавить selected
после значения col ТОЛЬКО, если col равно "отвертке".
Я пытался использовать оператор IF с помощью? и: но не может показаться, что моя голова вокруг него. Наличие "как ложного значения" не работает. Элементы не выбраны, и список пуст. Удалите инструкцию IF и все работает.
Любые идеи и снова, извините за новичку.
'<option value="' + col + '"'+ (col === "screwdriver" ? " selected " : "") +'>Very roomy</option>';
var x = '<option value="' + col + '"'
if (col == 'screwdriver') x += ' selected';
x += '>Very roomy</option>';
Что-то вроде этого:
for (/* stuff */)
{
var x = '<option value="' + col + '" '
+ (col === 'screwdriver' ? 'selected' : '')
+ '>Very roomy</option>';
// snip...
}
Если ваша конечная цель состоит в добавлении элементов на вашу страницу, просто манипулируйте DOM напрямую. Не используйте конкатенацию строк, чтобы попытаться создать HTML - какая боль! Посмотрите, насколько проще всего просто создать свой элемент, а не HTML, который представляет ваш элемент:
var x = document.createElement("option");
x.value = col;
x.text = "Very roomy";
x.selected = col == "screwdriver";
Затем, позже, когда вы поместите элемент на свою страницу, вместо установки innerHTML
родительского элемента, вызовите appendChild()
:
mySelectElement.appendChild(x);
Я набрал это в моей строке URL:
javascript:{ var col = 'screwdriver'; var x = '<option value="' + col + '"' + ((col == 'screwdriver') ? ' selected' : '') + '>Very roomy</option>'; alert(x); }