2011-03-29 94 views
0

我有一个多选择列表框与100+ <选项>多个选项的快速选择值

现在我有需要选择7个或8值。

我的代码是:

  var selObj = document.getElementById('list1'); 
      var len = selObj.length; 
      var selected_values = '1#2#15#34#82#96'; 
      var selected_values_array = selected_values.split('#'); 
      var alen = selected_values_array.length; 

      for (i = 0; i < len; i++) { 
       for (j = 0; j < alen; j++) { 
        if (selObj[i].value == selected_values_array[j]) { 
         selObj[i].selected = true; 
         break; 
        } 
       } 
      } 

当遇到脚本,浏览器停止响应。我知道我的代码很糟糕,但他们有什么方法来改进它。要么使用jQuery或JavaScript?

感谢

+2

你似乎有中的错误'用于(j = 0; I <阿伦; J ++)'。这不应该是'j 2011-03-29 10:46:05

+0

我已更改以下内容,但问题仍然存在 – 2011-03-29 10:48:22

回答

0

这样如何使用jQuery的帮助不大(得到它现在的工作):

var selected_values = '1#2#15#34#82#96'; 
var selectors = '#list1 > option[value="' + selected_values.split('#').join('"], #list1 > option[value="') + '"]'; 
$(selectors).each(function() { 
    $(this).attr('selected', true); 
}); 

丑陋不是我所希望的位。但是,嘿。 :)

看到它在行动here。和here is an edited version与一个更大的选择框。

+0

@ I-M-JM:对不起,请稍微调整一下。再给我几分钟。我正在寻找一种方法来一次选择多个属性的元素。我有一个错字。 :) – 2011-03-29 11:06:35

+0

@ I-M-JM:我现在开始工作了。我希望我可以一次选择多个可能的属性值。但不幸的是,我必须将完整的选择器串起来。 Maby别人知道如何使连接选择符字符串比这更清洁。 – 2011-03-29 11:16:02

+0

看起来不错,谢谢 – 2011-03-29 11:18:01

0

尝试此..

$('#list1 option').each(function(i) { 

    for (j = 0; j < alen; j++) { 
    if($(this).val() == selected_values_array[j]) { 
    $(this).attr("selected", true); 
    } 
    } 
});