gpt4 book ai didi

javascript - 使用 jquery 选择器选择 optgroup 在第一次选择后停止工作

转载 作者:行者123 更新时间:2023-11-30 18:35:25 26 4
gpt4 key购买 nike

当我清空一个 div 然后使用基于选定选项的选定项将另一个 div 附加到它时,我的行为变得非常奇怪。很难解释。当您选择并选择它时,它会起作用,但是当您返回并再次选择相同的选项组时,它会完全停止工作。请看他的例子:http://jsbin.com/akeboz/3/

可能是我又做错了 :P 但你认为它有什么问题吗?

<!DOCTYPE html>
<html>
<head>
<script class="jsbin" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
</style>
<script>
$(document).ready(function(){
$('#carSelect').change(function(){
currentBrand = $(this).find('option:selected').data('brand');
$('#carContainer').empty();
$('#car_'+currentBrand).show().appendTo('#carContainer');
});
});
</script>
</head>
<body>

<form>

<select id="carSelect">
<optgroup label="Swedish Cars">
<option data-brand='volvo' value="volvo">Volvo</option>
<option data-brand='saab' value="saab">Saab</option>
</optgroup>
<optgroup label="German Cars">
<option data-brand='mercedes' value="mercedes">Mercedes</option>
<option data-brand='audi' value="audi">Audi</option>
</optgroup>
</select>

<div id="carContainer"></div>

</form>

<div style="display:none;">

<div id="car_audi">
audi stuff
</div>

<div id="car_mercedes">
mercedes stuff
</div>

</div>


</body>
</html>

最佳答案

您正在追加,但随后在选择其他内容时销毁您追加的内容,因此无法取回它。

您想复制它,并附加该克隆。

$('#car_'+currentBrand).clone().show().appendTo('#carContainer');

此外,不需要 .show(),因为隐藏的是它们的父元素,而不是元素本身。

最终,我认为最好将内容嵌套在每种车型中,并在您完成后(在抓取新内容之前)将其放回原位。

这样您就不会不断地销毁和重建 DOM 元素。

像这样:

 <div style="display:none;">

<div id="car_audi">
<div>audi stuff</div>
</div>

<div id="car_mercedes">
<div>mercedes stuff</div>
</div>

</div>

然后这个:

 var currentBrand; 
var container = $('#carContainer');

$('#carSelect').change(function(){
if( container.children().length ) {
if( currentBrand ) {
container.children().appendTo( '#car_'+currentBrand );
} else {
container.empty();
}
}
currentBrand = $(this).find('option:selected').data('brand');
container.append($('#car_'+currentBrand).children());
});

关于javascript - 使用 jquery 选择器选择 optgroup 在第一次选择后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8346459/

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