web-dev-qa-db-ja.com

JavaScript:IIFのようなステートメント

VBから来たJavaScriptは、簡単に手に入れることができません。ネガティブにならないでください。私はロードを試しましたが、運はありませんでした。ところで、JSのSelectオプションリストから初期化されたドロップダウンコントロールを作成しています。

ダミーコード:

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

Colが 'screwdriver'と等しい場合にのみ、colの値の後にselectedを追加したいと思います。

IFステートメントを?で使用してみましたと:しかし、それの周りに私の頭を得ることができないようです。 false値として ''を使用しても機能しません。アイテムは選択されておらず、リストは空白です。 IFステートメントを削除すると、すべてが機能します。

すべてのアイデアと、初心者のために申し訳ありません。

33
Alex Guerin
'<option value="' + col + '"'+ (col === "screwdriver" ? " selected " : "") +'>Very roomy</option>';
59
George Mauer
var x = '<option value="' + col + '"'
if (col == 'screwdriver') x += ' selected';
x += '>Very roomy</option>';
3
jspcal

このようなもの:

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

最終的な目標がページに要素を追加することである場合、DOMを直接操作するだけです。文字列の連結を使用してHTMLを作成しないでください。要素を表すHTMLではなく、要素を作成する方がはるかに簡単です。

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

その後、ページに要素を配置するときに、親要素のinnerHTMLを設定する代わりに、appendChild()を呼び出します。

_mySelectElement.appendChild(x);
_
2
gilly3

URLバーにこれを入力しました。

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