假设我有一个<select>元素:
<select id="foobar" name="foobar" multiple="multiple">
<option value="1">Foobar 1</option>
<option value="2">Foobar 2</option>
<option value="3">Foobar 3</option>
</select>假设我有一个值数组,如下所示:
var optionValues = [2, 3];如何才能最有效地选择值为2和3的<option>?
我正在使用一个有数千个<option>的<select>,所以像这样手动操作是行不通的:
var optionElements = [];
$("#foobar").children().each(function() {
if($.inArray($(this).val(), optionValues)) {
optionElements.push($(this));
}
}它太慢了。有没有办法给jQuery一个我需要选择的元素的值列表?有什么想法吗?
另外,如果你想知道,我正在优化我的jQuery PickList widget,它现在是sucks at handling large lists。
发布于 2012-09-04 11:21:16
尝尝这个。
var optionValues = [2, 3],
elements = [],
options = document.getElementById('foobar').options;
var i = 0;
do {
var option = options[i];
if(optionValues.indexOf(+option.value) != -1) {
elements.push(option);
}
} while(i++ < options.length - 1);https://stackoverflow.com/questions/12256246
复制相似问题