使用jQuery each循环:是否存在类似continue的语句终止循环?
jQuery each循环的两个常见问题解答
嘿,刚好对jQuery的each循环这些细节门儿清,来给你逐个掰扯明白:
1. 如何实现类似continue的跳过当前迭代逻辑?
在jQuery的each()方法里,你只需要在回调函数中返回true,就完全等效于原生for循环里的continue语句——会直接跳过当前元素的后续逻辑,无缝进入下一个元素的迭代。
举个实际代码例子:
$('.list-item').each(function(index, elem) { // 假设我们要跳过带有disabled类的元素 if ($(elem).hasClass('disabled')) { return true; // 跳过当前迭代,去处理下一个元素 } // 这里是正常处理元素的逻辑 $(elem).addClass('processed'); console.log('已处理第', index + 1, '个元素'); });
2. 是否存在类似break的语句可终止整个jQuery each循环?
必须有!在each()的回调函数中返回false,就相当于原生循环里的break,会立即终止整个循环,不再处理任何后续的元素。
看这个例子:
$('.list-item').each(function(index, elem) { // 当找到目标元素后,终止整个循环 if ($(elem).data('id') === 'target') { console.log('找到目标元素,终止循环'); return false; // 直接结束整个each循环 } console.log('正在检查第', index + 1, '个元素'); });
顺带补个小细节:如果回调里不写返回值或者返回undefined,会默认执行完当前元素的所有逻辑再继续下一个,和返回true的“主动跳过”还是有区别的哦。
内容的提问来源于stack exchange,提问作者M.E.
相关产品推荐
相关产品推荐

