0

これが私のコードです:

   var select = $('#subjectslist');
   select.each(function(index, option) 
    {
        $(option).remove();
    });
   $.each(subjects, function(key, subject) 
   {
       if (select.find('option[value="' + subject + '"]').length === 0 && subject!="") 
   {
     //Ajouter la nouvelle catégorie dans la liste
      $('<option>', {
       value: subject,
       text: subject
       }).appendTo(select);
  }

});

これが私の問題です:

最初の各ループのために、私のマルチセレクトは完全に消えます。サイズを変更せずに再度入力する前に、マルチセレクトを空にする方法を教えてください。

4

1 に答える 1

1

ループ内で変数が呼び出さoptionれている間、ループは実際にはselect要素 (id によって見つかったので 1 つだけ) をループし、DOM からそれ自体を削除します。

あなたが本当に欲しいのは、 var options =$('#subjectslist option')またはselect.find('option').each(function(index, option)、またはselect.children().remove();その中のいくつかの優先バージョンです。

于 2012-12-09T21:44:54.383 に答える