0

タブと iFrame を表示/非表示にする Javascript 関数:

function ChangeStep(id)
{
    var i = 1;
    // hide all other tabs:
    while(i<3) {
        var divID = 'tabs' + i;
        if (divID !== null) {
            document.getElementById(divID).className = " hide";
        }
        i++;
    }

    // show this one
    document.getElementById(id).className = " show";
}

if (id == "tab2") {
    document.getElementById(iFrame).className = " iFrame2";
}
else if (id == "tab1") {
    document.getElementById(iFrame).className = " iFrame1";
}

タブの変更は機能しますが、下部のif文が機能していないようです。

編集

問題は、ID の iFrame があることです'iFrame'。css ファイルに次の 2 つのクラスを作成しました。これらのクラスは'iFrame1'設定'iFrame2'が異なり、iFrame の外観が異なります。上記の関数は、変更しても問題ありません'tabs'(クラス 'Show' を 1 つに追加し、'Hide' を他のすべてに追加します)。'iFrame2' and/or 'iFrame1' しかし、私のサイトは画像に大きく依存しているため、iFrames クラスを I can't put it on JSFiddle変更していないようです。

4

4 に答える 4

0

id2 つの問題がありました。関数の閉じ括弧が if ステートメントの前にありました。また、定義されている場所がどこにもありません。によって要素を取得していますがid、おそらく問題である他の場所で定義されていない限り

function ChangeStep(id)
{
var i = 1;
// hide all other tabs:
while(i<3) {
    var divID = 'tabs' + i;
    if (divID !== null) {
   document.getElementById(divID).className = " hide";
    }
    i++;
    }

// show this one
document.getElementById(id).className = " show";
//} -- remove this
    if (id == "tab2") {
        document.getElementById(iFrame).className = " iFrame2";
    }
    else if (id == "tab1") {
        document.getElementById(iFrame).className = " iFrame1";
    }
} //add this
于 2013-06-02T23:42:23.330 に答える