gpt4 book ai didi

javascript - 多选删除超过 1 个选项的问题

转载 作者:数据小太阳 更新时间:2023-10-29 05:01:53 25 4
gpt4 key购买 nike

Opera 浏览器的 JS 代码似乎有问题,因为它只删除了在多选标签中选择的最后一个选项标签,有人可以帮助我吗。

这是这个的 HTML:

<select id="actions_list" name="layouts" multiple style="height: 128px; width: 300px;">
<option value="forum">forum</option>
<option value="collapse">collapse</option>
<option value="[topic]">[topic]</option>
<option value="[board]">[board]</option>
</select>

当然它在一个表单标签中,但是这个表单涉及更多的代码,但这里是相关信息。

这是应该处理这个问题的 JS,但只删除 Opera 中最后选择的选项,不确定其他浏览器,但它确实需要删除所有选择的选项,而不仅仅是最后选择的选项......

var action_list = document.getElementById("actions_list");
var i = action_list.options.length;
while(i--)
{
if (action_list.options[i].selected)
{
action_list.remove(i);
}
}

这有什么问题吗?我一点也想不通。

最佳答案

使用 jQuery 最容易做到这一点,但如果您想使用纯 Javascript 来做到这一点。

您遇到的问题是,当您从 Opera 的选项列表中删除一个项目时,它会取消选择所有选定的项目,因此只有第一个被删除。解决方法是先记住选择了哪些项目,然后再删除任何项目。

var action_list = document.getElementById("actions_list");

// Remember selected items.
var is_selected = [];
for (var i = 0; i < action_list.options.length; ++i)
{
is_selected[i] = action_list.options[i].selected;
}

// Remove selected items.
i = action_list.options.length;
while (i--)
{
if (is_selected[i])
{
action_list.remove(i);
}
}

关于javascript - 多选删除超过 1 个选项的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3027504/

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