改进代码以从选择标记中获取所选项目

时间:2013-05-02 05:18:52

标签: javascript jquery html html5 jsp

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

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)
            }

1 个答案:

答案 0 :(得分:1)

如果您使用

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

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

希望这会有所帮助。

PS:拥有10.000值的选择是一种痛苦而且不完全是用户友好的......我建议你使用Chosen,它有一个很好的搜索选项用于选择/多选。