gpt4 book ai didi

jquery - 使用 jQuery 动态添加 optgroup

转载 作者:行者123 更新时间:2023-12-03 22:19:40 24 4
gpt4 key购买 nike

<select id="myElement" multiple="multiple">
<option value="1">Category Type</option>
<option value="158">itemOne</option>
<option value="157">itemTwo</option>
<option value="7">My Type</option>
<option value="20">itemThree</option>
<option value="21">itemFour</option>
<option value="22">itemFive</option>
<option value="8">Category Yet Another</option>
<option value="31">itemCheese</option>
<option value="32">itemBrain</option>
</select>

我需要动态转换它,以便“类别”选项(任何不以“项目”开头的选项)是一个 optgroup,包装它后面的任何内容,直到下一个类别选项,所以上面的结果看起来像:

<select id="myElement" multiple="multiple">
<optGroup label="Category Type">
<option value="158">One</option>
<option value="157">Two</option>
</optGroup>
<optGroup label="My Type">
<option value="20">Three</option>
<option value="21">Four</option>
<option value="22">Five</option>
</optGroup>
<optGroup label="Category Yet Another">
<option value="31">Cheese</option>
<option value="32">Brain</option>
</optGroup>
</select>

如何使用 jQuery 迭代它并更改值以达到所需的效果?

最佳答案

您必须迭代 option 元素并根据其内容对它们进行分组。使用 jQuery 比纯 DOM API 更容易:

http://jsfiddle.net/kpykoahe/2/

$(document).ready(() => {
const $cont = $('select');
$('option').each((idx, el) => {
const $el = $(el);
if ($el.text().startsWith('item')) {
$cont.find('optgroup').last().append($el);
$el.text($el.text().substr(4));
} else {
$('<optgroup/>').attr('label', $el.text()).appendTo($cont);
$el.remove();
}
});
});

关于jquery - 使用 jQuery 动态添加 optgroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12561680/

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