0

我有一个名为 addItem() 的自定义函数,其中包含 each() 函数。当满足某个条件时,我需要退出 addItem() 函数。我不能使用return它,因为它只从 each() 函数中退出,并且仍然在 main 函数中运行其余代码。我试过exit了,它似乎工作得很好。我只是不知道使用exit是否是正确的方法,因为我没有看到exit太多使用。

这是我的代码:

var addItem = function (position) {
    $(position + ' .item_div').each(function() {
        if($(this).find('.item').val() == '') {
            alert('Cannot be empty');
            exit;  // exit from addItem() function
                   // return does not work
        }
    });
    ...........
    ...........
    rest of the code here... this gets executed ONLY if each() fails...
    ...........
    ...........
}
4

3 回答 3

3

您可以使用 return false 来打破.each循环。

您可以通过返回 false 从回调函数中停止循环。

var addItem = function (position) {
    var valid = true;
    $(position + ' .item_div').each(function() {
        if($(this).find('.item').val() == '') {
            alert('Cannot be empty');
            valid = false;
            return false;
        }
    });

    if(!valid) {
        return;
    }
    ...........
    ...........
    rest of the code here... this gets executed ONLY if each() fails...
    ...........
    ...........
}
于 2013-03-15T05:11:46.640 回答
0

你试过用break吗?break 语句“跳出”循环。

或者您可以创建标签并使用 goto 跳转到该标签。

于 2013-03-15T05:15:40.100 回答
0

根据文档。是的。你需要return false;在循环中 打破循环

$('.someclass').each(function() {

    if (someConditionMet)
        return false;
});
于 2013-03-15T05:12:17.263 回答