0

下面是我用来从一个选择标签中选择一个项目并将其添加到另一个选择标签的代码。现在的问题是我的第一个选择标签包含超过 10000 个项目。我的代码检查是否在选择标签一中选择了每个项目,如果选择,则检查第二个选择标签中是否存在相同的项目。这是非常低效的,因为这样做需要很多时间。任何人都可以建议一个更好的代码,通过它我可以直接从选择标签中获取多个选定项目,然后我只需要检查它们是否存在于第二个选择标签中并添加它们。

if(Name.selectedIndex >= 0)
            {
                for(i=0;i<Name.options.length;i++)
                {

                    if(Name.options[i].selected)
                    {

                        exist   = false
                        for(j=0;j<addedScrips.options.length;j++)
                        {

                            if(addedScrips.options[j].value == Name.options[i].value)
                            {
                                exist   = true;
                                break;

                            }
                        }
                        if(exist == false)
                        {
                            optVal =    Name.options[i].value;
                            optText = Name.options[i].text;
                            if(optVal == "NoMatch")
                            {}
                            else
                            {
                                addedScrips.options[addedScrips.options.length] =   new Option(optText,optVal);
                              break;

                            }
                        }
                    }
                }
                //sortOptions(addedScrips)
            }
4

1 回答 1

1

如果你使用

var selectedValues = $('#multipleSelect').val();

在多选列表中,您将获得一个包含所有选定值的数组。然后使用数组进行过滤,然后将缺失值添加到您的第二个列表中。

希望这有帮助。

PS:拥有 10.000 个值的选择很痛苦,而且对用户并不友好……我建议您使用Chosen,它有一个不错的选择/多选搜索选项。

于 2013-05-02T06:10:34.553 回答