-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 はどこからその値を取得しますか? また、オブジェクトdb 一度設定してから、if ステートメントで次のように表示プロパティを変更することもできます。

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 からわかるように、== の代わりに = も使用しています。

また、要素宣言を再利用するようにコードを変更し (DRY になるようにしてください) else if、JS エンジンが無駄なテストを回避できるようにしました。

于 2013-06-04T13:37:17.490 に答える