1

クリックするたびに javascript innerHTML を変更するためのリンクを取得しようとしています。

function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
        id.innerHTML="innerHTML1";
    }
    if (id.innerHTML==="innerHTML1"){
        id.innerHTML="innerHTML2";
    }
}

 

<a id="id" href="javascript:id_1('id')">innerHTML1</a>

リンクをクリックすると、からにinnerHTML1変わります。innerHTML2innerHTML1innerHTML2

現在、 からinnerHTML1への切り替えは 1 回だけです。innerHTML2

4

4 に答える 4

4

else if2 番目の if ステートメントに使用する必要があります。

コード内のロジックは、2 回目のクリックで次のように機能します (コンテンツが innerHTML2 の場合)。

  1. 最初の if ステートメントは、コンテンツが innerHTML2 であるかどうかをテストします。これは、コンテンツが innerHTML1 (必要なもの) に変更されているためです。
  2. 2 番目の if ステートメントは、コンテンツが innerHTML1 であるかどうかをテストします。これは (ステップ 1 で変更されたため) そのため、コンテンツは innerHTML1 に戻されます (意図したものではありません)。

したがって、ソリューションは次のようになります。

function id_1(a){
    var id = document.getElementById(a); 
    if (id.innerHTML=="innerHTML2"){
        id.innerHTML="innerHTML1";
    }else if (id.innerHTML=="innerHTML1"){
        id.innerHTML="innerHTML2";
    }
}

ポイントを強調するために、同じ方法でコードを保持できますが、return を使用して if ステートメントが 1 つだけ使用されるようにします。

function id_1(a){
    var id = document.getElementById(a); 
    if (id.innerHTML=="innerHTML2"){
        id.innerHTML="innerHTML1";
        return;
    }

    if (id.innerHTML=="innerHTML1"){
        id.innerHTML="innerHTML2";
        return;
    }
}
于 2013-03-07T20:49:14.800 に答える
3

ステートメントのelse間にを使用するだけです:if

function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
        id.innerHTML="innerHTML1";
    } else if (id.innerHTML==="innerHTML1"){
        id.innerHTML="innerHTML2";
    }
}

else2 番目がないifと、最初の で行われた変更の影響を受けますif

innerHTML には 2 つの状態しかないため、実際には次のように単純化できます。

function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
        id.innerHTML="innerHTML1";
    } else {
        id.innerHTML="innerHTML2";
    }
}
于 2013-03-07T20:49:30.923 に答える
1

あなたはelseが欠けているだけです:

<html>
<head>
<script>
function id_1(a){
    var id = document.getElementById(a);
    if (id.innerHTML==="innerHTML2"){
        id.innerHTML="innerHTML1";
    }
    else if (id.innerHTML==="innerHTML1"){
        id.innerHTML="innerHTML2";
    }

}
</script>
</head>
<body>
<a id="id" href="javascript:id_1('id')">innerHTML1</a>
</body>
</html>

フィドル: http://jsfiddle.net/WCgAS/

于 2013-03-07T20:50:17.920 に答える