0

私がやりたいのは、「#studentadd」選択ボックスに表示されているオプションをすべて選択ボックスから削除し、#studentselect選択ボックスを空にできるようにすること#studentaddです。しかし、現時点ではこれを行っていません。

私は何が間違っているのですか?

以下は、両方の選択ボックスのhtmlです。

以下は選択ボックス#studentaddです:

<select multiple="multiple" name="addtextarea" id="studentadd" size="10">
    <option value='1'>u08743 - Joe Cann</option>
    <option value='4'>u03043 - Jill Sanderson</option>
    <option value='7'>u08343 - Craig Moon</option>
</select>

以下は、生徒が追加する必要のある選択ボックスです。

    <select id="studentselect" name="studenttextarea">
        <option value='1'>u08743 - Joe Cann</option>
        <option value='4'>u03043 - Jill Sanderson</option>
        <option value='7'>u08343 - Craig Moon</option>
</select>

以下はjqueryです:

$('#studentadd option').attr('selected', 'selected');

var selectedOption = $('select#studentadd');
$('select#studentselect').remove(selectedOption.html());
4

3 に答える 3

2

試す

var selectedOption = $('#studentadd').find(':selected');
var studentSelect = $('#studentselect');
selectedOption.each(function(){
    studentSelect.find('[value="'+this.value+'"]').remove();
});

デモ

于 2013-01-12T23:21:06.170 に答える
1

両方のリストに同じデータがある場合は、value属性に依存しようとします。

$('#studentadd').change(function () {  
  var value = $(this).find("option:selected").val();
  $('#studentselect option[value="' + value + '"]').remove();
});

//更新:複数の要素の選択を処理します

$('#studentadd').change(function () {
  $(this).find("option:selected").each(function () {
    $('#studentselect option[value="' + $(this).val() + '"]').remove();
  });
});

実際の動作をご覧ください:http://jsfiddle.net/EvpDx/2/

于 2013-01-12T23:20:06.947 に答える
0

選択したアイテムをSELECTから削除する場合(複数選択または単一化に関係なく)、次を使用できます。

$('#studentadd option').attr('selected', 'selected');  //Preparation
$('#studentadd option:selected').remove()              //Choose all selected OPTIONs from item with ID=studentadd and remove it
于 2013-01-12T23:20:33.717 に答える