У меня есть поле выбора, которое клонируется. Я хочу удалить предыдущий выбор пользователя из каждого клонированного поля выбора. Вот метод, который делает clone()
:Как удалить выбранный элемент во время операции clone()
function addselect(s){
$('#product_categories > .category_block:last').after(
$('#product_categories > .category_block:last').clone()
);
set_add_delete_links();
return false;
}
function set_add_delete_links(){
$('.remove_cat').show();
$('.add_cat').hide();
$('.add_cat:last').show();
$("#product_categories > .category_block:only-child > .remove_cat").hide();
}
function removeselect(s){
$(s).parent().remove();
set_add_delete_links();
return false;
}
Это своего рода работает, но не удаляет последний выбранный:
$('#product_categories > .category_block:last option:selected').remove();
Вот HTML
<div id="product_categories">
<div class="category_block">
<select name="category_ids[]" id="cat_list">
<option value="">Select Attribute</option>
<option value="1770">Foo0</option>
<option value="1773">Foo1</option>
<option value="1775">Foo2</option>
<option value="1765">Foo3</option>
<option value="1802">Foo4</option>
<option value="1766">Foo5</option>
</select>
<input class="specsinput" type="text" name="specs[]" value="" />
<a href="#" onClick="return removeselect(this);" class="remove_cat"> [-] </a>
<a href="#" onClick="return addselect(this);" class="add_cat"> [+] </a>
</div>
Мой ответ предполагает, что '.category_block' является' 'элемент
@patrick - До сих пор я не мог нормально работать, но я буду продолжать пытаться, и я ценю все превосходные примеры и предложения – Slinky
HTML, который вы предоставили, имеет решающее значение. Теперь он должен работать. Имейте в виду одну ** важную ** вещь. 'Select' в' category_block', который вы клонируете, имеет идентификатор 'cat_list'. Идентификатор также клонируется, что означает, что у вас есть 2 элемента с одинаковым идентификатором (что очень плохо). Вам либо нужно избавиться от идентификатора, либо изменить его, когда вы клонируете его. – user113716