0

グローバルなJavaスクリプトに変数があります。これで、内部関数が呼び出されるたびに異なる値が得られました。属性のように選択された値を持つオプションタグと、変数に基づいて選択された値がないオプションタグを作成する必要があります。これはもっと紛らわしいと思いますが、例を挙げましょう。

var a1 = "a1c" // default value but may change

if(a1 == "all")
{
    var allstatusdefault = '<option value="all" selected="selected">All</option>';
}
else
{
    var allstatusdefault = '<option value="all" >All</option>';
}

if(a1 == "a1b")
{
    var allstatusdefault1 = '<option value="a1b" selected="selected">a1b</option>';
}
else
{
    var allstatusdefault1 = '<option value="a1b" >a1b</option>';
}

if(a1 == "a1bc")
{
    var allstatusdefault2 = '<option value="a1bc" selected="selected">a1bc</option>';
}
else
{
    var allstatusdefault2 = '<option value="a1bc" >a1bc</option>';
}

これは単なるサンプルですが、さまざまな値で多くのオプション タグを生成する必要があります。

4

5 に答える 5

3

共通コードを抽出します。ここには多くの重複が見られます。

var a1 = "a1c";

function buildOption(id) {
    var selected = (a1 == id? ' selected="selected"' : '');
    return '<option value="' + id + '"' + selected + '>' + id + '</option>';
}

var allstatusdefault =  buildOption('all');
var allstatusdefault1 = buildOption('a1b');
var allstatusdefault2 = buildOption('a1bc');
于 2012-08-24T19:20:16.213 に答える
2

ここで私が差し引くことができるものから、あなたがすべきことは次のとおりです

var default1 = '<option value="'+a1+'" selected="selected">'+a1+'</option>';
var default2 = '<option value="'+a2+'" selected="selected">'+a2+'</option>';

の値はa1文字列で再利用されるため、複数の if ステートメントを使用する代わりに、すぐに設定することもできます。

注: if ステートメントが多数ある場合は、switch ステートメントを使用する絶好の機会です。

于 2012-08-24T19:18:37.710 に答える
1

まず、について学びswitch...caseます。あなたの場合、変数を文字列に連結することにより、文字列の形成に変数自体を単純に使用できるように見えます。

于 2012-08-24T19:18:18.043 に答える
0
  var a1 = "a1bc" // default value but may change
    switch(a1)
        {
        case "all" : allstatusdefault = '<option value="all" selected="selected">All</option>';break;
        case "a1b" : allstatusdefault = '<option value="a1b" selected="selected">a1b</option>'; break;
        case "a1bc" :  allstatusdefault = '<option value="a1bc" selected="selected">a1bc</option>'; break;
        default :  allstatusdefault = '<option value="all" >All</option>';break;
        }
    window.alert(allstatusdefault); ​
于 2012-08-24T19:21:47.307 に答える
-1

あなたがコードを書いている方法から、jQueryを使用してコードを作成できると思います。最初に HTML 全体を作成し、すべてのオプション値を次のように jQuery オブジェクトを使用して作成します。

var $optionHTML = $('<option value=""> Blahblah </option>'); これで、すべての jquery 関数をこの男に適用できます。したがって、このような新しいオプションを追加します。

$optionHTML.append('<option>...</option>')

すべてのオプション要素を使い終わったら、jquery セレクター メソッドを使用して、値属性が一致するオプションを持つ要素を見つけ、属性をa1c追加するselectedと完了です。

初心者向けのコードが必要な場合はお知らせください。

ありがとう。

編集 :

これが答えです

<html>
<head>
    <script type = "text/javascript" src= "http://code.jquery.com/jquery-1.8.0.min.js"></script>
    <script type = "text/javascript">
        $(document).ready (function () {
            var value = "test 2";
            $select = $("<select></select>");
            $optionHTML1 = $('<option value="test 1">Test 1</option>');
            $optionHTML2 = $('<option value="test 2">Test 2</option>');
            $optionHTML1.appendTo($select); 
            $optionHTML2.appendTo($select);
            $select.find("[value='test 2']").attr('selected','selected');
            alert($select.html());  
            $("div").append($select);
        });
    </script>
    <style type = "text/css">
    </style>
</head>
<body>
    <div>
    </div>
</body>

于 2012-08-24T19:22:13.607 に答える