使下拉列表查找()更快
Making a dropdown find() faster
我有一个下拉框和一个用于自动过滤下拉列表的输入。我需要更快地进行下拉列表过滤。我在下拉菜单之前添加了一个文本框和一个用于过滤下拉列表的事件:代码片段为:
td.prepend(' <span class="ms-metadata"><br/>(type some chars to filter )</span><br/>');
.....
td.prepend($('<input/>', {id: 'DPFilter',
onkeyup: 'filterDP(this)'
}));
在函数过滤器DP(元素)上:
....
var value = $(element).val();
$( dropdown).find("option").each(function() {
var optionValue = $(this).val();
$(dropdown).find('option[value="' + optionValue + '"]').map(function () {return $(this).parent('span').length === 0 ? this : null;})
.wrap('<span>')
$(this).map(function () { return $(this).parent('span').length === 0 ? this : null;}).wrap('<span>').hide();
...
if ((value == "") || ($(this).text().search(value) > -1) ){
$(dropdown).find('option[value="'+optionValue+'"]').show();
}
我唯一能想到的地方是 $(dropdown).find('option[value="'+optionValue+'"]').show(); ,而不是找到它,使用索引,但我不知道怎么做。
另外,我使用 find() 两次(在未显示的代码中),变量会更快吗?谢谢
您可以使用 filter
来简化和加快此操作:
var value = $(element).val();
$(dropdown).filter(function() {
if ($(this).text().indexOf(value) != -1) {
$(this).show();
}
});
相关文章:
- 哪个布尔运算更快<或者<=
- 哪个JavaScript相等运算符(==或===)更快
- 哪个更快?按 ID 选择,或按索引选择
- I'我用setTimeout加载脚本,你能找到一个更快的方法吗
- 在jQuery中,创建和附加元素的方式更快
- 更快的SVG路径操作
- Javascript中什么更快?循环或重复的函数调用
- jQuery类选择器如何比querySelectorAll的jQuery包装器更快?
- 在 JavaScript 中连接字符串或数组是否更快
- 如何使我的代码更快
- 交换 img src 或显示/隐藏多个图像是否更快
- 访问和修改“HTMLInputElement.
”是否比“Element”更快.(g/s)etAttr - 使用Javascript(或者JQuery,如果它更快的话)有一种方法可以更快地对此进行排序
- 什么更快?运行空函数或检查函数是否未定义
- 制作更快的jQuery AJAX帖子
- 在Javascript中,哪个操作符更快,'*'乘或'/'分
- Javascript性能:如何在数组中循环并检查每个值比indexOf、search和match更快
- 使下拉列表查找()更快
- 有没有一种更快的方法来查找客户端和服务器端的所有图像、音频和视频文件类型
- Javascript:什么查找更快:数组.indexOf vs对象哈希值