1

jqueryを使用してサーバーから次のような文字列を取得します。

<option value='1'>1</option><option value='2'>2</option>
<option value='3'>3</option><option value='4'>4</option>

次に、div 内にドロップダウンを作成します。

$.get('server.php', function(data) {
    $('#mydiv').html('<select id="mysel" name="mysel">'+data+'</select>');
});

問題は、これを作成するときに、1 つのオプションを選択する必要があることです。

$("#mysel").val("3");

しかし、うまくいきません!この行を呼び出す前にアラートを追加すると、これは機能します!

alert('test');
$("#mysel").val("3");

問題が見つかりません。

注: サーバーからデータを取得する方法を変更することはできません。

4

7 に答える 7

0

$("#mysel").val("3");線が外側にあると仮定すると$.get() {}...

からの応答$.get非同期であるため、HTML要素が追加される前に$("#mysel").val("3");が実行されます。<option>

を追加すると、そのシナリオで が存在するalert()のに十分な時間、実行が遅延します。<option>

ここでの最も簡単な解決策は、体の$("#mysel").val("3");内側を動かすことです。$.get() {}

于 2013-07-25T17:10:50.370 に答える
0

試す:

$("#mysel option:selected").val("3");

そして、テキストを設定したい場合は、次を試してください:

$( "#mysel option:selected" ).text("3");

ただし、ドロップダウンが DOM ツリーで作成された後に、これを宣言する必要があります。

于 2013-07-25T16:22:35.030 に答える
0

これを試して

$(document).ready(function(){
   $("select#mysel option").each(function() { 
       if($(this).text() == '2')
          this.selected = true;
   });
});
于 2013-07-25T16:45:44.680 に答える