gpt4 book ai didi

javascript - 无法将选项添加到多个 optgroup

转载 作者:行者123 更新时间:2023-11-27 22:58:24 28 4
gpt4 key购买 nike

我正在尝试向多个optgroup添加一个选项,问题是这个选项只显示在单个optgroup上,我不知道这个机制是不是默认逻辑html 或者我做错了:

$(document).ready(function() {
$('#options').append('<optgroup label="category1"></optgroup>');
$('#options').append('<optgroup label="category2"></optgroup>');

var opt1 = new Option("test1", 1);
var opt2 = new Option("test2", 2);

$('#options optgroup[label=category1]').append(opt1);
$('#options optgroup[label=category2]').append(opt1);
$('#options optgroup[label=category1]').append(opt2);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<select id="options">
</select>

结果:

enter image description here

如您所见,选项 test1 与 2 个类别相关联,但仅显示在一个类别中。

This is a fiddle.

最佳答案

发生这种情况是因为 opt1 引用了相同的 DOM。追加第二次只是改变 dom 的位置。你不能在两个不同的地方有一个元素。

您可以创建新的 DOM 对象或克隆它

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<select id="options">
</select>

$(document).ready(function() {
$('#options').append('<optgroup label="category1"></optgroup>');
$('#options').append('<optgroup label="category2"></optgroup>');

var opt1 = new Option("test1", 1);
var opt2 = new Option("test2", 2);


$('#options optgroup[label=category1]').append(opt1);
$('#options optgroup[label=category2]').append($(opt1).clone());
$('#options optgroup[label=category1]').append(opt2);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<select id="options">
</select>

关于javascript - 无法将选项添加到多个 optgroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54152102/

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