Javascript 如何在保留选项的同时删除optgroup

Javascript 如何在保留选项的同时删除optgroup,javascript,jquery,optgroup,Javascript,Jquery,Optgroup,任何人都可以解释为什么jQuery在原始代码上工作,但删除了我代码的所有选项 var i=0; var cursel = "#mySelect".concat(i); $(cursel).children().remove("optgroup"); 原始代码: 我的代码: 我有多个完全相同的选择菜单,这就是为什么我有它的concat设置放在柜台。但为什么它适用于原版而不是我的?我一直在反复阅读代码和示例,不知道为什么。它确实运行。大多数选项都在optgroup元素中,因此它们会被删除。尝试

任何人都可以解释为什么jQuery在原始代码上工作,但删除了我代码的所有选项

var i=0;
var cursel = "#mySelect".concat(i);
$(cursel).children().remove("optgroup");
原始代码:

我的代码:


我有多个完全相同的选择菜单,这就是为什么我有它的concat设置放在柜台。但为什么它适用于原版而不是我的?我一直在反复阅读代码和示例,不知道为什么。

它确实运行。大多数选项都在optgroup元素中,因此它们会被删除。尝试将选项移到optgroup元素之外,如“原始代码”片段中

您要做的是使用“展开”方法:

$(cursel).children('optgroup').children().unwrap();

请看:

实际上,您的代码结构与itOh不同哇,我现在觉得自己像个傻瓜。好的,那么有没有一种方法可以从optgroup中提取选项并删除optgroup,让所有选项保持原样。正如我所说,我一直在尝试使用DOM模型来移动它们,但没有效果。为什么要跳过其中一些呢?它跳过项目,因为您正在使用for循环遍历列表时正在从列表中删除项目。这通常不是你想做的事情。请参阅下面我的答案,了解一行有效的代码:)