这个break语句在jquery/javascript中有效吗?
Is this break statement valid in jquery/javascript?
我有一个基于输入字符串选择文本的函数。如果两者都匹配,则选中它。功能,
function setDropdownTextContains(dropdownId,selectedValue,hfId){
$('#'+dropdownId+' option').each(function(){
if($(this).text() === selectedValue){
$(this).attr("selected", "selected");
break;
}
});
$('#'+hfId).val("ModelName doesnt match");
}
我得到下面的错误unlabeled break must be inside loop or switch
…我做错了什么?
异常文本非常具有描述性。你真的不能在if
子句中使用break
语句。在您的示例中,应该使用return false
来停止.each()
迭代。
break
语句用于结束for, while or do-while
循环或switch语句。它在你使用的地方没有副作用。你想达到什么目标?
在您的具体情况下,只需return false
$().each
是一个函数方法,因此您将以return
function setDropdownTextContains(dropdownId,selectedValue,hfId){
$('#'+dropdownId+' option').each(function(){
if($(this).text() === selectedValue){
$(this).attr("selected", "selected");
return false; // <--
}
});
$('#'+hfId).val("ModelName doesnt match");
}
要打破你可以只是return false;
,像
if($(this).text() === selectedValue){
$(this).attr("selected", "selected");
return false;
}
从每个函数中返回'false'将完全停止循环遍历所有元素(这就像使用'break'和正常循环)。从循环内返回'true'将跳转到下一个循环迭代(这就像在普通循环中使用'continue')
根据jQuery文档,break表示跳出循环。不能在if语句中使用。
你可以用return false
代替。
jQuery.each(arr, function() {
$("#" + this).text("Mine is " + this + ".");
return (this != "three"); // will stop running after "three"
});
相关文章:
- Javascript袖珍参考,第121页:这是怎么回事;猴子补丁”;方法应该有效
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- Rails将JavaScript对象存储到Model的有效方式
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 外部链接的Javascript文件赢得't执行,但函数有效
- 如何有效地创建多维javascript数组
- Javascript/Ajax:通过点击按钮检查有效的电子邮件和电话号码
- 如何在javascript中将字符串转换为有效日期
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 将javascript数组中的项移动到特定位置的有效方法
- Javascript:字符串中有效的基于数组的替换
- Javascript下载在firefox中停止,但在Chrome中有效
- slack files.upload-如何从javascript/jQuery将文件作为有效负载发送
- 跨浏览器的有效 JavaScript 名称
- 使用具有有效 JavaScript 格式的 Json.NET 序列化对象
- 我的开关结构似乎有效(JavaScript 控制结构)
- 检查二进制搜索树是否为有效javascript
- Typescript字典编码的有效Javascript字典函数到类
- 我必须遵循什么规则来编写没有分号的有效Javascript ?
- 使用对象文字表示法创建对象的有效Javascript语法是什么?