You need to clone the proper element, set the selected value for the clone, then append the clone.
function addselect(s){
// Store the block in a variable
var $block = $('#product_categories > .category_block:last');
// Grab the selected value
var theValue = $block.find(':selected').val();
// Clone the block
var $clone = $block.clone();
// Find the selected value in the clone, and remove
$clone.find('option[value=' + theValue + ']').remove();
// Append the clone
$block.after($clone);
set_add_delete_links(); return false;
}
UPDATE: Modified to fit HTML added to question.
Please note, the ID of the select element is being cloned, which means you have 2 elements with the same ID. This is not allowed. You'll need to get rid of the ID, or change it in the clone to some other value.
You could do something like this before you append the clone:
// Grab the select in the clone
var $select = $clone.find('select');
// Update its ID by concatenating theValue to the current ID
$select.attr('id', $select.attr('id') + theValue);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…