在jQuery中,$.each()
或 $(selector).each()
函数用于遍历集合(数组或对象)。如果需要提前终止循环,可以通过以下方式实现:
each()
函数:对匹配的元素集合或数组进行迭代,每次迭代会执行回调函数。index
(当前索引)和 element
(当前元素或值)。each()
本身没有 break
语句,但可以通过返回值控制。each()
的方法false
在回调函数中返回 false
,会终止循环(类似 break
)。
$.each([1, 2, 3, 4], function(index, value) {
if (value === 3) {
return false; // 终止循环
}
console.log(value); // 输出: 1, 2
});
true
(跳过当前迭代)返回 true
会跳过当前迭代(类似 continue
),但不会终止循环。
$.each([1, 2, 3, 4], function(index, value) {
if (value === 2) {
return true; // 跳过本次迭代
}
console.log(value); // 输出: 1, 3, 4
});
forEach
:无法直接退出,需通过抛出异常或改用 for
循环。return false
对性能无显著影响,但逻辑需清晰。$("div").each(function(index, element) {
if ($(element).hasClass("stop")) {
return false; // 终止循环
}
console.log(index, $(element).text());
});
const obj = { a: 1, b: 2, c: 3 };
$.each(obj, function(key, value) {
if (value === 2) {
return false; // 终止循环
}
console.log(key, value); // 输出: a 1
});
如果需要更灵活的循环控制,可改用原生JS的:
for
循环(支持 break
/continue
)Array.some()
或 Array.every()
(通过返回值控制)[1, 2, 3].some(function(value) {
if (value === 2) return true; // 终止循环
console.log(value); // 输出: 1
});
通过返回 false
即可安全退出 each()
循环,这是jQuery官方支持的标准方式。
没有搜到相关的文章