首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择具有值数组的所有元素的最有效方法

选择具有值数组的所有元素的最有效方法
EN

Stack Overflow用户
提问于 2012-09-04 11:02:41
回答 8查看 7.3K关注 0票数 3

假设我有一个<select>元素:

代码语言:javascript
运行
复制
<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>

假设我有一个值数组,如下所示:

代码语言:javascript
运行
复制
var optionValues = [2, 3];

如何才能最有效地选择值为2和3的<option>

我正在使用一个有数千个<option><select>,所以像这样手动操作是行不通的:

代码语言:javascript
运行
复制
var optionElements = [];

$("#foobar").children().each(function() {
    if($.inArray($(this).val(), optionValues)) {
        optionElements.push($(this));
    }
}

它太慢了。有没有办法给jQuery一个我需要选择的元素的值列表?有什么想法吗?

另外,如果你想知道,我正在优化我的jQuery PickList widget,它现在是sucks at handling large lists

EN

Stack Overflow用户

发布于 2012-09-04 11:21:16

尝尝这个。

代码语言:javascript
运行
复制
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);
票数 0
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12256246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档