我试图将两种类型的输入分离到它们自己的 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/