javascript - 如何避免对同一组元素使用过滤器两次

标签 javascript jquery

我试图将两种类型的输入分离到它们自己的 jQuery 包装集中,因为它们需要根据 id 是否包含 '-add-new-' 进行不同的处理。我知道我可以使用过滤器两次,如下所示:

var seriesTabInputs = $msSeriesTabs.find('input').filter(function() {
    return $(this).attr('id').indexOf('-add-new-') == -1;
});

var addNewTabInputs = $msSeriesTabs.find('input').filter(function() {
    return $(this).attr('id').indexOf('-add-new-') >= 0;
});

然而,过滤两次对我来说似乎效率低下,因为我知道它需要第二个循环。有没有办法避免这种情况?

最佳答案

尝试如下:

var addNewTabInputs = $msSeriesTabs.find('input[id*="-add-new-"]');
var seriesTabInputs = $msSeriesTabs.find('input[id]:not([id*="-add-new-"])');

var addNewTabInputs = $msSeriesTabs.find('input[id*="-add-new-"]');
var seriesTabInputs = $msSeriesTabs.find('input[id]').not(addNewTabInputs);

关于javascript - 如何避免对同一组元素使用过滤器两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32615546/

相关文章:

javascript - 在 div 标签中使用 javascript 将 UL 添加到 HTML 时被捕获并出错

javascript - 如何隐藏页面启动时使用 jQuery 自动生成的 html 元素

javascript - JQuery Ajax 调用被触发 onClick

javascript - 在 Bootstrap 3 中,如何将下拉列表中的列表项设置为一级菜单项,并且仅在 xs 屏幕尺寸上设置?

javascript - 如果没有被使用,为什么要返回一个 bool 值?

javascript - 使用本地存储从表单发布和获取数据

javascript - 在 Google 表格中移动单元格范围

javascript - 根据其他输入值将复选框设置为选中

jQuery .removeClass() 不工作

javascript - System JS一次调用加载多个依赖