我有以下js功能,我拉着我的头发试图确定为什么它不会返回'true'。我已经通过在块中添加警报来验证逻辑块被击中,但它似乎跳过包含return语句的行。
function requiresMatchLevel(fields) {
$.each(fields, function (i, field) {
if (field.OperationParamName() == "MatchLevel" && field.Include()) {
return true;
}
});
return false;
};
答案 0 :(得分:12)
return
以每个功能为基础。返回传递给$.each
的函数不会让你的外部函数返回一些东西。
如果在传递给$.each
的函数中返回一些内容,jQuery将收到结果。这里唯一有效的值是false
,它使jQuery脱离循环。
function requiresMatchLevel(fields) {
var result = false;
$.each(fields, function (i, field) {
if (field.OperationParamName() == "MatchLevel" && field.Include()) {
result = true;
return false; // break out of loop - no need to continue
}
});
return result;
};
答案 1 :(得分:2)
怎么样
function requiresMatchLevel(fields) {
var isMatch = false;
$.each(fields, function (i, field) {
if (field.OperationParamName() == "MatchLevel" && field.Include()) {
isMatch = true;
}
});
return isMatch;
};
答案 2 :(得分:1)
当您运行jquery函数并返回true时,将返回true到jquery。尝试其中一些:
function requiresMatchLevel(fields) {
var toBeReturned=false;
$.each(fields, function (i, field) {
if (field.OperationParamName() == "MatchLevel" && field.Include()) {
toBeReturned=true;
}
});
return toBeReturned;
};
我希望这可以帮到你。
答案 3 :(得分:0)
function requiresMatchLevel(fields) {
var ret = false;
$.each(fields, function (i, field) {
if (field.OperationParamName() == "MatchLevel" && field.Include()) {
ret = true;
return false; // here you need to return false just like break out a loop.
}
});
return ret;
};
答案 4 :(得分:0)
使用RETURN yourfuncttion();
关于活动。