0

スライダーを使用してテーブルを表示/非表示にし、以下と同時に画面上の数値を変更しようとしています。

<input id="scaleSlider" type="range" value="1" min="1"  max="9" step="1" onchange="showValue(this.value), showOrHide(this.value)"/>

<script type="text/javascript">
    function showValue(newValue) {
        document.getElementById("range").innerHTML = newValue;
    }
</script>
<script type="text/javascript">
    function showOrHide(newValue) {
        if (("newValue").value = 1) {
            document.getElementById(guest2).style.display="none";
            document.getElementById(guest3).style.display="none";
            document.getElementById(guest4).style.display="none";
            document.getElementById(guest5).style.display="none";
            document.getElementById(guest6).style.display="none";
            document.getElementById(guest7).style.display="none";
            document.getElementById(guest8).style.display="none";
            document.getElementById(guest9).style.display="none";
        }
        if (("newValue").value = 2) {
            document.getElementById(guest2).style.display="block";
            document.getElementById(guest3).style.display="none";
            document.getElementById(guest4).style.display="none";
            document.getElementById(guest5).style.display="none";
            document.getElementById(guest6).style.display="none";
            document.getElementById(guest7).style.display="none";
            document.getElementById(guest8).style.display="none";
            document.getElementById(guest9).style.display="none";
        }
}

</script>

「範囲」は正常に設定され、数値が表示されますが、テーブルを切り替えることができません」


私が今持っているもの

<script type="text/javascript">
function showValue(newValue)
{
    document.getElementById("range").innerHTML=newValue;
}
</script>
</td>
</table>

<script type="text/javascript">
function showOrHide(newValue){

    if(newValue == 1) {
document.getElementById(guest2).style.display="none";
document.getElementById(guest3).style.display="none";
document.getElementById(guest4).style.display="none";
document.getElementById(guest5).style.display="none";
document.getElementById(guest6).style.display="none";
document.getElementById(guest7).style.display="none";
document.getElementById(guest8).style.display="none";
document.getElementById(guest9).style.display="none";
}
    if(newValue == 2) {
document.getElementById(guest2).style.display="block";
document.getElementById(guest3).style.display="none";
document.getElementById(guest4).style.display="none";
document.getElementById(guest5).style.display="none";
document.getElementById(guest6).style.display="none";
document.getElementById(guest7).style.display="none";
document.getElementById(guest8).style.display="none";
document.getElementById(guest9).style.display="none";
}
}   

</script>

まだ隠れたり表示したりしていません。

4

3 に答える 3

0

コードを適切にフォーマットすると、}閉じるためのaが欠落していることがわかりますfunction showOrHide(newValue)

また、動作し("newValue").valueません。使用するだけnewValueです:

if(newValue == 1)

編集 また、あなたは.value = 2あなたifので使用しているようです、これは.value == 2(同じ==1)である必要があります

于 2012-11-30T12:19:19.200 に答える
0

onchangeにはonchange="showValue(this.value); showOrHide(this.value);"、コンマではなくセミコロンが必要です。Cerbrusが言及したブレースも必要になります。また("newValue").value、単にそうする必要がnewValueあり、それと比較する必要があります。スライダーの実際の値をとして渡すnewValueので、それを参照するために特別なことをする必要はありません。繰り返しになりますが、Cerbrusは、割り当てを行うのではなく、平等をテスト=する必要があることについても正しいです。==

したがって、最終if (newValue == 1) { ... }的にはifステートメントの形式になります。

また、guest2はjavascriptの変数ではなく、テーブルのIDであるためdocument.getElementById(guest2)、残りはフォームに含める必要があります。document.getElementById("guest2")つまり、参照ではなく文字列として渡す必要があります。

また、タイプではなくIDであるdocument.getElementById("range")必要があります。document.getElementById("scaleSlider")

于 2012-11-30T12:26:21.703 に答える
0

これを試して

<input id="scaleSlider" type="range" value="1" min="1"  max="9" step="1" onchange="showOrHide(this.value)"/>

<script type="text/javascript">
    function showOrHide(newValue) {
        var newValue = document.getElementById("range").value;
        if (newValue == 1) {
            document.getElementById(guest2).style.display="none";
            document.getElementById(guest3).style.display="none";
            document.getElementById(guest4).style.display="none";
            document.getElementById(guest5).style.display="none";
            document.getElementById(guest6).style.display="none";
            document.getElementById(guest7).style.display="none";
            document.getElementById(guest8).style.display="none";
            document.getElementById(guest9).style.display="none";
        }
        if (newValue == 2) {
            document.getElementById(guest2).style.display="block";
            document.getElementById(guest3).style.display="none";
            document.getElementById(guest4).style.display="none";
            document.getElementById(guest5).style.display="none";
            document.getElementById(guest6).style.display="none";
            document.getElementById(guest7).style.display="none";
            document.getElementById(guest8).style.display="none";
            document.getElementById(guest9).style.display="none";
        }
}
</script>
于 2012-11-30T12:54:47.220 に答える