Javascript返回错误
Javascript return error
铬控制台的输出
z = selected_sheet()
返回
5
undefined
z
返回
undefined
JavaScript代码
function selected_sheet(){
$('.sheet_radio').each( function(){
if (this.checked == true){
var x = 5;
console.log(x);
return x;
};
});
};
因此,我从控制台日志中得到了正确的输出,但z没有被设置为从console.log返回的同一项。
这是因为一次只能选择一个单选按钮。我将在一分钟内对此进行详细介绍。
这是你的代码:
function selected_sheet(){
$('.sheet_radio').each( function(){
if (this.checked == true){ `Entry Point`
var x = 5;
console.log(x);
return x;
};
});
};
如果选择单选按钮,控件将进入if条件Entry Point
,因此输出为5,
但是,如果未选择单选按钮,则控制不会通过Entry Point
,因为if条件失败,函数返回未定义。
如果你有任何问题,请告诉我。
问题
之所以出现这种情况,是因为.each执行的函数仅从该函数的作用域返回。它不会从selected_theet返回。
事实上,如果显式地使传递给每个显式的函数返回一个值,您会注意到z实际上从未设置:
function selected_sheet() {
$('.sheet_radio').each(function() {
return 5;
});
// nothing is actually being returned
};
z = selected_sheet(); // z is undefined
解决方案
一种解决方案是在外部范围内为x设置默认值(或未定义),然后如果选中单选按钮,则将x的值设置为新值
function selected_sheet() {
var x = 7; // set default to 7
$('.sheet_radio').each(function() {
if (this.checked == true) {
x = 5; // set to new value
console.log(x);
return false; // stop iterating
}
});
return x;
};
另一种方法是用选择器查询,看看是否有选中的单选按钮:
function selected_sheet() {
if($('.sheet_radio:checked').length > 0) {
return 5;
} else {
return 7; // this is the default if nothing is checked
}
}
最后,这里有一个纯JavaScript解决方案:
function selected_sheet() {
if( document.querySelector('.sheet_radio:checked') !== null) {
return 5;
} else {
return 7; // this is the default if nothing is checked
}
}
和一个简洁的版本
function selected_sheet() {
return document.querySelector('.sheet_radio:checked') !== null? 5 : 7;
}
相关文章:
- CKFinder 3为所选文件返回错误的URL
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 用于查询错误转换的角度资源返回列表
- 如何解决“;错误所请求的URL返回500-内部服务器错误”;
- WebView返回错误的window.innerHeight
- Javascript表单验证:表单在错误返回时提交:
- 谷歌地图上的常量错误返回maxZoomService.getMaxZoomAtLatLng()
- Jquery .ajax POST 函数错误返回 asp.net MVC.
- happy 不会从 Boom 错误返回数据属性
- 操作结果在 ajax 调用中作为错误返回
- 我得到了错误“返回绑定”.PBKDF2(密码、盐、迭代、keylen、回调);^ TypeError: Not a bu
- 节点解析错误:返回时意外的令牌
- Bluebird承诺库的结果作为错误返回
- Jquery, php ajax post 500内部服务器错误返回
- 未定义的索引问题和错误返回
- 未从json文件中导入数据:Unhandled rejection错误返回
- Jquery错误返回bool值
- 表单提交后重新加载页面,尽管没有验证和错误返回
- 使用POST方法的AJAX函数会创建以下错误.错误:返回状态码414请求uri太大