2013-05-02 51 views
0

下面是我用於從一個選擇標記中選擇項目並添加另一個選擇標記的代碼。現在的問題是我的第一個選擇標籤包含超過10000個項目。我的代碼檢查每個項目是否在選擇標籤1中被選中,並且如果選擇,則檢查第二選擇標籤中是否存在相同的項目。這是非常低效的,因爲這需要很多時間。任何人都可以建議一個更好的代碼,我可以直接從選擇標籤中選擇多個選項,然後我只需檢查它們是否存在於第二個選擇標籤中並添加它們。改進代碼以從選定標記中獲取選定項目

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

你可以把你的html代碼部分? – polin 2013-05-02 05:20:33

+0

HTML代碼包含簡單的2個選擇標籤 – 2013-05-02 05:34:08

回答

1

如果多選名單上使用

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

,你會得到所有選擇值的數組。 然後使用該數組進行篩選,然後將缺失值添加到第二個列表中。

希望這有助於。

PS:有一個選擇與10.000值是一個痛苦,並不完全用戶友好...我建議你使用Chosen它有一個很好的搜索選項的選擇/多選。

相關問題