<script type="text/javascript">
// 既然你用了 jp[0] - jp[n] ,那也就不用在最外层循环了
// 第一次判断,其中一个大于 40 ,则
if(jp[0] >= 40 || jp[1] >=40 || jp[2] >=40){
for(var i=0i<3i++){
if(jp[i]>=40){
document.getElementById("tz_"+jp[i]).style.display="block"
}
}
}else if(jp[0]<30 && jp[1]<30 && jp[2]<30){
// 这里是全部小于 30 的话,显示你的 id="ph" 的 div
document.getElementById("ph").style.display = "block"
}else{
// 如果全部小于 40 且不全部小于 30 的话
for(var i=0i<3i++){
// 则把所有大于等于 30 的显示出来
if(jp[i]>=30){
document.getElementById("tz_"+jp[i]).style.display="block"
}
}
}
</script>
// 当然,可以使用循环的方式,这样以后维护也好一点,循环判断代码如下:
<script type="text/javascript">
var zhph = "00"
var jp = new Array(27, 28, 23, 24)
// gt40 判断是否有大于等于40 的,lt30 判断是否全部小于 30
var gt40 = false, mi34 = false
window.onload = function() {
for (var zh in jp) {
var value = jp[zh]
// 如果有一个超过 40 ,则 gt40=true,直接可以 break
if (value >= 40) {
gt40 = true
break
} else {
// 如果有 30<= x < 40 的,则 mi34 = true
if (value >= 30) {
mi34 = true
}
}
}
if (gt40) { // 如果有大于40的,则显示所有大于 40 的 div
for (var zh in jp) {
var value = jp[zh]
if (value >= 40) {
var myid = "tz_" + value.toString()
if (document.getElementById(myid)) {
document.getElementById(myid).style.display = "block"
}
}
}
} else if (!mi34) { // 如果不存在 30-40 的数,则是全部小于 30 的 div
var myid = "tz_" + zhph
if (document.getElementById(myid)) {
document.getElementById(myid).style.display = "block"
}
} else { // 否则,显示 30-40 的 div
for (var zh in jp) {
var value = jp[zh]
if (value < 40 && value >= 30) {
var myid = "tz_" + value.toString()
if (document.getElementById(myid)) {
document.getElementById(myid).style.display = "block"
}
}
}
}
}
</script>
你的每一行alert语句是不是结尾忘写分号 了 ?
……以下是我解决问题的看法:
“且四项的值不能使汉字,有一项是汉字都不行",过滤汉字就先封装一个方法,用 Unicode 字符范围判断或正则表达式 :
//检测是否为中文,true表示是中文,false表示非中文
function isChinese(str){
if(/^[\u3220-\uFA29]+$/.test(str)){
return true
}else{
return false
}
}
”只要一项有错误,就不执行加法操作“,用if{} else{} if 进行流程控制,if中对条件进行判断,如果前几项有一个不成立 ,则会跳到最后的else,如下
if(Number(one<0 || Number(one)>20 )||isChinese(one)){alert("第一项分值错误")
}else
if (Number(two<0 || Number(two)>25 )||isChinese(two)){
alert("第二项分值错误")
}else
if (Number(three<0 || Number(three)>25) ||isChinese(three)){
alert("第三项分值错误")
}else
if (Number(four<0 || Number(four)>25) ||isChinese(four)){
alert("第四项分值错误")
}
else{
var he = Num(one)+Number(two)+Number(three)+Number(four)
eg.$("he").value=he
}
我很少写JS 欢迎指正,希望帮到你