2013-11-03 34 views
1

單擊按鈕時,我使用detach-method從下拉列表中刪除多個項目。我也有一個重置按鈕 - 但我不知道如何重置我的下拉菜單。刪除項目後重置下拉列表

$("#presets option[value='" + id + "']").detach(); 
+0

通過你的意思是你要清除所有下拉列表項或選擇它的默認值復位? –

回答

0

如果要恢復已刪除的項目,而爲了保存並不重要,解決方法很簡單:

var removed = []; 
// your buttons to remove single items 
$('#remove1').on('click', function() { 
    removed.push($('#presets option[value="1"]').detach()); 
}); 
$('#remove2').on('click', function() { 
    removed.push($('#presets option[value="2"]').detach()); 
}); 
// button to restore items 
$('#restore').on('click', function() { 
    removed.forEach(function ($e) { 
     $('#presets').append($e); 
    }); 
}); 

jsFiddle


如果保存訂單很重要,那麼您需要在恢復之前對元素進行排序:

var removed = $(); 
$('#remove1').on('click', function() { 
    removed = removed.add($('#presets option[value="1"]').detach()); 
}); 
$('#remove2').on('click', function() { 
    removed = removed.add($('#presets option[value="2"]').detach()); 
}); 
$('#restore').on('click', function() { 
    var $opts = removed.add('#presets option'); 
    removed = $(); 
    $opts.sort(function(a, b) { 
     return parseInt($(a).attr('value')) > parseInt($(b).attr('value')); 
    }); 
    $('#presets').html($opts); 
}); 

jsFiddle

+0

這就是智能 - 但不知何故恢復不起作用,我的下拉列表:'

' – CinemaCope

相關問題