84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
代码如下
var test = true; $(".input").each(function() { var inputName = $(this).attr("name"); test = test && invokeValidateFunction(inputName); });
invokeValidateFunction()返回布尔值,为什么使用逻辑运算符后只判断了第一个input标签后就退出each遍历了,而改用"&"后可以完成遍历。
业精于勤,荒于嬉;行成于思,毁于随。
Sorry。刚才的回答理解有些错误,因为 && 的短路原则,如果test为false时,后面的invokeValidateFunction()就不会被执行,也就是说,这段代码的意思是,如果检测到一个参数验证不合法,就不会检测后面的参数了。而改为 & 之后,因为 & 只是位运算法,所以总是会执行invokeValidateFunction()的验证,并且如果有验证失败,就会因为和原则,把test设为0,也就是false。使用 & 和 && 在这段代码中的效果是一样的,只是 && 会在第一次验证失败后就停止验证。
你的invokeValidateFunction代码贴出来看看
遍历是有的,只是invokeValidateFunction(inputName)这个函数没执行,你没看出来效果而已,楼上正解
按位与(&)返回的应该是1和0 return 0 不会停止each循环 所以可以完成遍历
Sorry。刚才的回答理解有些错误,
因为 && 的短路原则,如果test为false时,后面的invokeValidateFunction()就不会被执行,也就是说,这段代码的意思是,如果检测到一个参数验证不合法,就不会检测后面的参数了。
而改为 & 之后,因为 & 只是位运算法,所以总是会执行invokeValidateFunction()的验证,并且如果有验证失败,就会因为和原则,把test设为0,也就是false。
使用 & 和 && 在这段代码中的效果是一样的,只是 && 会在第一次验证失败后就停止验证。
你的
invokeValidateFunction
代码贴出来看看
遍历是有的,只是invokeValidateFunction(inputName)这个函数没执行,你没看出来效果而已,楼上正解
按位与(&)返回的应该是1和0 return 0 不会停止each循环 所以可以完成遍历