在我提出问题之前,我想让大家知道我很感激总有人愿意帮忙,并且我也会尽我所能回馈社区。谢谢。
现在,我想获取一些关于如何正确使用JavaScript中的“for...in”循环的指针,我已经做了一些研究并尝试了一些东西,但我仍然不清楚如何正确使用它。
假设在HTML表单中有一个随机数量的“select”标签,我不需要用户为所有标签选择选项,如果他们愿意,可以留下一些未触及的选项。但是我需要知道他们是否一个都没有选择,或者至少选择了一个。
我正在尝试使用“for...in”循环查找用户是否选择了任何标签。例如:
var allSelected = $("select option:selected");
var totalSelected = $("select option:selected").length;
第一个变量生成了所有选定选项的数组。 第二个变量告诉我在表单中有多少选定选项(选择标签可能不止一个,每次都会更改)。 现在,为了查看是否选择了任何选项,我循环遍历每个元素(选定的选项),并检索“value”属性。默认的“option”标记具有value =“0”,因此如果任何选定选项返回大于0的值,则我知道至少选择了一个选项,但是它不必按顺序,这是我的循环目前的情况:
for(var i = 0; i < totalSelected; i++){
var eachOption = $(allSelected[i]).val();
var defaultValue = 0;
if(eachOption == defaultValue){
...redirect to another page
}else if(eachOption > defaultValue){
... I display an alert
}
}
我的问题在于一旦"if"匹配到一个值为0的元素,它就会立即将用户发送到下一页,而没有测试数组中其余的元素,而用户可能已经选择了第二或第三个选项。
我真正想做的是检查数组中的所有元素,然后采取下一步行动,我认为可以这样做,但我做不对:
var randomValue = 25;
for(randomValue in allSelected){
var found = true;
var notFound = false
if(found){
display an alert
}else{
redirect to next page
}
}
我使用的这个循环或逻辑是有缺陷的(我非常确定),我想做的是测试数组中的所有元素与一个变量进行比较,并根据下一步的操作进行相应的处理。
希望这对你们有些意义,任何帮助将不胜感激。
谢谢,
JC
Object.prototype
是一个非常糟糕的想法。 :-) 这就是为什么我选择了Thing
。 - T.J. Crowder