Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将(不完整的)选择列表的顺序恢复为其原始顺序?

如何将(不完整的)选择列表的顺序恢复为其原始顺序?
EN

Stack Overflow用户
提问于 2010-04-20 22:26:51
回答 2查看 4.8K关注 0票数 4

我有两个选择列表,您可以在它们之间移动选定的选项。您还可以在右侧列表中上下移动选项。

当我将选项移回左侧列表时,我希望它们在列表顺序中保持其原始位置,即使列表中缺少一些原始选项。这仅仅是为了使列表对用户更方便。

我目前正在用最初的Select list onload定义一个数组。

实现这一点的最佳方式是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-20 23:08:49

您可以将原始顺序存储在数组中,并在插入时确定数组中在要插入的元素之前的最新元素是什么,并且与选择列表中的当前元素相匹配。然后在后面插入。

更好的解决方案是整个存储旧数组,并在每次插入时重新填充所需的元素,如下所示(警告:代码未测试)

代码语言:javascript
运行
AI代码解释
复制
function init(selectId) {
    var s = document.getElementById(selectId);
    select_defaults[selectId] = [];
    select_on[selectId] = [];
    for (var i = 0; i < s.options.length; i++) {
        select_defaults[selectId][i] = s.options[i];
        select_on[selectId][i] = 1;
        var value = list.options[i].value;
        select_map_values[selectId][value] = i if you wish to add/remove by value.
        var id = list.options[i].id; // if ID is defined for all options
        select_map_ids[selectId][id] = i if you wish to add/remove by id.
    }
}

function switch(selectId, num, id, value, to_add) { // You can pass number, value or id
    if (num == null) {
        if (id != null) {
            num = select_map_ids[selectId][id]; // check if empty?
        } else {
            num = select_map_values[selectId][value]; // check if empty?
        }
    }
    var old = select_on[selectId][num];
    var newOption = (to_add) : 1 : 0;
    if (old != newOption) {
        select_on[selectId][num] = newOption;
        redraw(selectId);
    }
}

function add(selectId, num, id, value) {
    switch(selectId, num, id, value, 1);
}

function remove(selectId, num, id, value) {
    switch(selectId, num, id, value, 0);
}

function redraw(selectId) {
    var s = document.getElementById(selectId);
    s.options.length = 0; // empty out
    for (var i = 0; i < select_on[selectId].length; i++) { 
        // can use global "initial_length" stored in init() instead of select_on[selectId].length
        if (select_on[selectId][i] == 1) {
            s.options.push(select_defaults[selectId][i]);
        }
    }
}
票数 5
EN

Stack Overflow用户

发布于 2010-04-20 22:37:57

我会为这些项分配升序的值,这样您就可以将项插入到正确的位置。无论项在哪个列表中,赋值都会随项一起保留。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2679144

复制
相关文章
python 列表有没有顺序_python的list顺序详解
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
IT工作者
2022/08/04
1.3K0
顺序表的定义_顺序表的逻辑顺序和物理顺序
来看一个生活中的例子:周末和朋友一起吃火锅,人非常多,我们需要在等候区等候,这个等候区就与顺序表有非常多的相似之处,借助它去理解顺序表的特点。首先,在等候区有非常多的椅子,这些椅子往往是排成一排连续排放的,中间不会空出很大的空间造成浪费。这就与在顺序表中选取存储单元的方法是一样的,我们会选取一段地址连续的存储单元去存放顺序表。接着工作人员会安排我们在椅子上连续的坐下等候。在存储单元当中去进行数据的存放是一样的,也是依次地存放线性表当中的数据元素,中间也不会空出许多存储单元造成空间的浪费。最后结伴而行的朋友也会坐在相邻的椅子上,这与顺序表的存放是相同的。在逻辑上相邻的两个元素在物理位置上也要保证它相邻,也会把它存放在相邻的存储单元上。在这个例子当中,其实椅子就代表着存储单元,而每一个等候的人就是要存放的数据元素。来总结一下顺序表的特点:
全栈程序员站长
2022/09/20
1.6K0
for循环中执行顺序_顺序结构选择结构循环结构
今天刷题碰到的一个坑,就是没有注意到for循环的每次判断条件导致的**,也就是for循环的第二句**,每次循环都会执行该判断条件。
全栈程序员站长
2022/11/17
8240
线性表的顺序存储——顺序表
线性表的顺序存储又称为顺序表, 它是用一组地址连续的存储单元依次存储线性表中的数据元素. 逻辑上相邻的两个数据元素在物理位置上同样相邻.
后端码匠
2021/01/20
8710
线性表的顺序存储——顺序表
顺序表示的线性表——顺序表
一、定义 线性表是由n个类型相同的数据元素组成的有限序列,记为(a1,a2,...,ai-1,ai,ai+1,...,an)。 二、特点 逻辑上相邻的元素,在物理上也相邻。只要确定了第一个元素的起始位置,线性表的任一元素都可以随机存取,因此,线性表的顺序存储结构是一种随机存取的存储结构。 三、存储结构 #define ListSize 100 typedef struct { DataType list[ListSize]; //DataType表示数据类型,list用于存储线性表中的数据元素
Zoctopus
2018/06/04
9650
执行start()的顺序不代表线程执行的顺序
执行start()的顺序不代表线程执行的顺序 import org.omg.CORBA.PUBLIC_MEMBER; /** * Created by wuyupku on 2019-04-12 12:24 * * @Beijing CHINA */ public class Demo01 { public static void main(String[] args) { mythread thread1 = new mythread(1); mythrea
葆宁
2019/04/18
2.6K0
执行start()的顺序不代表线程执行的顺序
CSS选择器以及权重顺序
一个页面的搭建离不开css样式,而想要使用css对页面元素进行控制就需要用到css选择器。
伯约同学
2022/03/05
4540
SQL查询语句的书写顺序和执行顺序
1、一个完整SQL查询语句的书写顺序 -- "mysql语句编写顺序" 1 select distinct * 2 from 表(或结果集) 3 where … 4 group by …having… 5 order by … 6 limit start,count -- 注:1、2属于最基本语句,必须含有。 -- 注:1、2可以与3、4、5、6中任一搭配,也可以与3、4、5、6中多个同时搭配。 2、一个完整的SQL语句执行顺序 上图的解释如下: 3、关于select和having执行顺序谁
数据分析与统计学之美
2021/11/25
1.4K0
顺序表的算法
静默虚空
2018/01/05
9160
SQL 的执行顺序
了解 SQL 的执行顺序非常有价值,它可以让我们写出语法正确的 SQL,帮助我们简化编写新查询的过程。
白日梦想家
2020/07/18
2.3K0
for循环的执行顺序
第二步,判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,然后进入第二次循环。若判断表达式2的值为假,就终止for循环,执行循环体外语句。
全栈程序员站长
2022/07/15
1.8K0
文件的顺序读写
文件的顺序写(输出)操作是指先输出的数据存入文件前面的位置,后输出的数据存放在文件后面的位置。
pigeon
2022/04/11
7580
公式顺序解析之加减乘除的执行顺序
博主的思路已经有些混乱了,感觉不太对,所以我们先来把加减乘除的解析计算写一下,自己也捋捋思路,有经验的大佬请指导一下这个菜鸟博主。
余生大大
2022/11/02
6150
多线程顺序处理的方式多线程顺序处理的方式
核心点: 1.锁共同资源lock 2.通过while循环判断每次被唤醒是否要再次阻塞
名字是乱打的
2021/12/24
3750
一日一学:返回排序好的列表的索引顺序
今天介绍的是对列表排序后,返回排序好的索引顺序。 问题描述:给定一个列表 [2, 3, 1, 4, 5] ,怎么返回排序后的索引顺序,即 [2,0,1,3,4] ? 解决方法: 方案1: 利用 so
kbsc13
2020/02/26
1.1K0
【Oracle】-【插入读取顺序】-插入读取之间的顺序关系
SQL> create table t ( x int, a char(2000) default 'x', b char(2000) default 'x', c char(2000) default 'x'); Table created. SQL> insert into t (x) values ( 1 ); 1 row created. SQL> insert into t (x) values ( 2);  1 row created. SQL> insert into t (x) values ( 3);  1 row created. SQL> commit; Commit complete. SQL> select x, rownum, rowid from t;           X     ROWNUM ROWID ---------- ---------- ------------------          3          1 AAAOXNAAHAAAAasAAA          1          2 AAAOXNAAHAAAAavAAA          2          3 AAAOXNAAHAAAAawAAA
bisal
2019/01/29
8020
设置U盘为第一启动顺序
本文转载:http://u.diannaodian.com/Article/1004.html
跟着阿笨一起玩NET
2018/09/18
4.9K0
顺序栈的基本操作
栈是限定仅在表尾进行插入好删除操作的线性表。 1、顺序栈结构 typedef struct { SElemType data[MAXSIZE]; int top; /* 用于栈顶指针 */ }SqStack; 2、构造一个空栈  / 清空栈 Status InitStack(SqStack *S) { /* S.data=(SElemType *)malloc(MAXSIZE*sizeof(SElemType)); */ S->top=-1
亦小河
2022/11/14
3090
java继承的调用顺序
加入了子类以后,执行顺序有了新的变化,我们可以总结一下。首先第一部分执行的是父类的静态代码块—子类的静态代码块—主程序。这一部分都是执行一次,与建立多少对象没有关系。第二部分new了一个父类对象,并调用了方法。执行了它的非静态代码块—构造函数—一般方法。第三部分new了一个子类的对象,并调用了方法。执行顺序为父类的非静态代码块—父类的无参构造函数,然后是子类的非静态代码块—子类构造函数—子类的方法。
用户7043603
2022/02/27
8140
MySQL的语句执行顺序
MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是 FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户
wangxl
2018/03/08
6.6K0
MySQL的语句执行顺序

相似问题

混洗后恢复为原始数组顺序

50

恢复QTableView/QSortFilterProxy中的原始顺序

67

关于恢复行元素的原始顺序

11

如何恢复NSMutableArray的原始排序顺序?

21

如何将按钮恢复为其原始颜色

60
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文