gpt4 book ai didi

jquery - 如何在clone()操作期间删除选定的元素

转载 作者:行者123 更新时间:2023-12-01 03:28:23 27 4
gpt4 key购买 nike

我有一个被克隆的选择框。我想从每个克隆的选择框中删除用户之前的选择。这是执行 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>

最佳答案

您需要克隆正确的元素,为克隆设置选定的值,然后附加克隆。

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;
}

更新:修改以适应添加到问题中的 HTML。

请注意,选择元素的 ID 正在被克隆,这意味着您有 2 个具有相同 ID 的元素。这是不允许的。您需要删除 ID,或在克隆中将其更改为其他值。

在附加克隆之前,您可以执行类似的操作:

    // 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);

关于jquery - 如何在clone()操作期间删除选定的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2882470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com