1

IDパラメータと2つの選択ボックスを備えた機能があるとしましょう

<select id="one" onchange="Fill(2)"></select>
<select id="two" onchange="Fill(3)"></select>
<select id="three"></select>

私の機能

function Fill(id){  
//some manupulation
$('<option/>').val(substr[0]).html(substr[1]).appendTo('#two');
}

しかし、多くのことをする代わりに

if(id==2) {$('<option/>').val(substr[0]).html(substr[1]).appendTo('#two');}
if(id==3) {$('<option/>').val(substr[0]).html(substr[1]).appendTo('#three');}

私はのようなものが欲しい

$('<option/>').val(substr[0]).html(substr[1]).appendTo(DYNAMIC);
4

5 に答える 5

6

select-1などのIDを使用してから、を使用すると、はるかに簡単になりselect-2ます'#select-' + id

それ以外の場合は、数字からスペル番号にマッピングするマッピングオブジェクトが必要です。

于 2012-05-21T16:13:46.340 に答える
2
function Fill(id){  
  var index = {
    1: 'one',
    2: 'two',
    3: 'three'; 
  };
  $('<option/>').val(substr[0]).html(substr[1]).appendTo('#' + index[id]);
  // or just, but in this case you need to change the *id* pattern like opt_1, opt_2 etc
  $('<option/>').val(substr[0]).html(substr[1]).appendTo('#opt_' + id);
}
于 2012-05-21T16:13:48.737 に答える
0

私はデビッドトーマスの提案に行くつもりです:

<select id="one" onchange="Fill(this);"></select>
<select id="two" onchange="Fill(this);"></select>
<select id="three"></select>

塗りつぶし機能を次のように定義します。

function Fill(select) {
    $('<option />').val(/*..*/).html(/*..*/).appendTo($(select));
}

そうすれば、必要なIDを選択して指定できるようになり、オブジェクトを見つけるためにDOMにクエリを実行する必要がなくなります。

于 2012-05-21T17:06:01.403 に答える
0

あなたが思っているより簡単です:)

<select id="select-1" onchange="Fill(2)"></select>
<select id="select-2" onchange="Fill(3)"></select>
<select id="select-3"></select>

function Fill(id){ // 
    //some manupulation
    $('<option/>').val(substr[0]).html(substr[1]).appendTo('select-' + id);
}
于 2012-05-21T16:14:49.313 に答える
0

この行を塗りつぶし関数の先頭に追加します。

 var DYNAMIC = $(this);
于 2012-05-21T16:18:27.920 に答える