-4

我真的什么都试过了。我不知道该怎么办。它不工作

function load() {
if(acc == "a")
var d = document.getElementById('sn');
    d.style.display='block';
var b = document.getElementById('neas');
    b.style.display='none'; 
if(acc == "n")
var d = document.getElementById('sn');
    d.style.display='none';
var b = document.getElementById('neas');
    b.style.display='block'; }

我的头:

<script language="JavaScript">
day = new Date(); 
hour = day.getHours();
if (hour>=3 && hour<2)
    acc = "a";
        else { acc = "n";  } 
</script>
<script language="JavaScript">
function load() {
    var d = document.getElementById('sn');
    var b = document.getElementById('neas');
    if(acc == "a") {
        d.style.display='block';
        b.style.display='none'; 
    } else if(acc == "n") {
        d.style.display='none';
        b.style.display='block';
    }
}
</script>

我的身体:

<input type="password" maxlength="20" id="sn" style="width: 180px; height: 25px; background-image: url(bginput.gif); border:0; padding-left: 5px; padding-right: 5px; color: #0099cc; text-align: center;" value="">
<input type="text" id="neas" style="width: 180px; height: 25px; background-image: url(bginput.gif); border:0; padding-left: 5px; padding-right: 5px; color: #0099cc; text-align: center;" value="You are unable to enter." readonly>

对不起,愚蠢的问题,我只是JS的初学者。

4

4 回答 4

2

代替 if(acc = "a")

if(acc == "a")

= 是赋值运算符

其中 as==是比较运算符

   function load() {
     var d = document.getElementById('sn');
    var b = document.getElementById('neas');

    if (acc = "a") {

        d.style.display = 'block';    
        b.style.display = 'none';
    }

    if (acc = "n") {    
        d.style.display = 'none';        
        b.style.display = 'block';
    }
}
于 2013-06-04T13:36:54.260 回答
1

确保将您的if条款附在{}. 比较时也使用==代替,是一个赋值运算符,因此不会通过您的子句。==if

 function load() {
    var d = document.getElementById('sn');
    var b = document.getElementById('neas');

    if(acc == "a"){
      d.style.display='block';
      b.style.display='none'; 
    }

    else if(acc == "n"){          
      d.style.display='none';          
      b.style.display='block';
   } 
};
于 2013-06-04T13:41:29.013 回答
1

您有一些语法错误。您似乎缺少一些大括号,并且比较运算符也不应该===. 尝试:

function load() {

    if (acc == "a") {
        var d = document.getElementById('sn');
        d.style.display = 'block';
        var b = document.getElementById('neas');
        b.style.display = 'none';
    }

    if (acc == "n") {
        var d = document.getElementById('sn');
        d.style.display = 'none';
        var b = document.getElementById('neas');
        b.style.display = 'block';
    }

}

编辑:

您的逻辑似乎也存在差距。acc 的价值从何而来?此外,您可以设置对象d,然后在 if 语句中更改它们的显示属性,如下所示b

function load() {

    var d = document.getElementById('sn');
    var b = document.getElementById('neas');

    if (acc = "a") {            
        d.style.display = 'block';            
        b.style.display = 'none';
    }    
    if (acc = "n") {    
        d.style.display = 'none';        
        b.style.display = 'block';
    }

}
于 2013-06-04T13:38:02.403 回答
0

您会通过缩进看到第一个问题:您缺少一些块分隔符。

function load() {
    var d = document.getElementById('sn');
    var b = document.getElementById('neas');
    if (acc == "a") {
        d.style.display='block';
        b.style.display='none'; 
    } else if (acc == "n") {
        d.style.display='none';
        b.style.display='block';
    }
}

正如 PSR 所见,您还使用了 = 而不是 ==。

我还更改了您的代码以重用元素声明(尽量保持干燥)并else if让 JS 引擎避免无用的测试。

于 2013-06-04T13:37:17.490 回答