-2
 function init(){
    var flag=true;
    if(flag)
    {
        document.getElementById("panel").innerHTML=
            "power is on<br />";
    }
    if(7<2)
    {
        document.getElementById("panel").innerHTML=
            "<br />failure";
    }
        if(2<7)
    {
        document.getElementById("panel").innerHTML=
            "<br />success";
    }
}
window.onload=init;

これは if.js 別の html ファイルにロードしますが、これは実行されるメイン コードです。

私が得ている唯一の出力は「成功」が書かれていることですが、「電源が入っています」は何が悪いのか表示されていませんか?

4

6 に答える 6

2

innerHTML を複数箇所に割り当てず、文字列にしてまとめて割り当てます。

var flag = true,
    html = "";
if (flag) {
    html += "power is on<br />";
}
if (7 < 2) {
    html += "<br />failure";
}
if (2 < 7) {
    html += "<br />success";
}
document.getElementById("panel").innerHTML = html;
于 2012-07-04T08:02:50.800 に答える
0

if の代わりに else if を使用できます

function init(){
    var flag=true;
    if(flag)
    {
        document.getElementById("panel").innerHTML=
            "power is on<br />";
    }
    else if(7<2)
    {
        document.getElementById("panel").innerHTML=
            "<br />failure";
    }
        else if(2<7)
    {
        document.getElementById("panel").innerHTML=
            "<br />success";
    }
}
window.onload=init;

上記のコードは常に「電源がオン」と表示されることに注意してください。これは、メソッドでフラグを true に割り当てるためです。複数の出力が必要な場合は、他の提案のように連結アプローチを使用できます。

于 2012-07-04T08:08:03.163 に答える
0
  var panel =  document.getElementById("panel");
    if(flag) {
        panel.innerHTML += "power is on<br />";
    }

    if(7<2) {
        panel.innerHTML += "<br />failure";
    }
    if(2<7) {
        panel.innerHTML += "<br />success";
    }

を変更するたびにinnerHTML、以前の内容がすべて上書きされるため、文字列に を追加する必要があります+=

パネル要素への参照も一度だけ作成したい場合があります。

フィドルの例: http://jsfiddle.net/ypznU/

于 2012-07-04T07:58:07.493 に答える
0

そこにある現在の HTML を置き換えています。= の代わりに += を使用する必要があります。

function init(){
var flag=true;
if(flag)
{
    document.getElementById("panel").innerHTML +=
        "power is on<br />";
}
if(7<2)
{
    document.getElementById("panel").innerHTML +=
        "<br />failure";
}
    if(2<7)
{
    document.getElementById("panel").innerHTML +=
        "<br />success";
}

これはどのように機能しますか?

于 2012-07-04T07:58:26.000 に答える
0

innerHTML要素を設定すると、以前の内容が指定された HTML 文字列に置き換えられます。何が起きているかというと、「電源が入っている」が一瞬見えて (最近のコンピューターは非常に高速です)、すぐに「成功」​​に置き換わります。

于 2012-07-04T07:59:03.953 に答える
0

最後の if ステートメントは常に true と評価されます。

if(2<7)
{
    document.getElementById("panel").innerHTML=
        "<br />success";
}

これは、「成功」が常にパネル要素の内部にあるものを置き換えることを意味します。条件が本当に必要なものであり、置換が本当に意図したものであることを確認してください。それ以外の場合は、他の人が提案したように文字列を追加してください。

于 2012-07-04T08:09:28.187 に答える