2

JavaScript の独学を始めたばかりで、いくつかの基本的な演習を行っています。現在、3 つの値を取り、最大値を出力する関数を作成しようとしています。ただし、関数はボタンのクリック時に起動することを拒否します。デバッグのためだけに別の非常に単純な関数を作成しようとしましたが、それも起動を拒否しました。私は、ほとんど同じ方法で (3 つではなく 2 つのパラメーターを持っていた) 正常に動作する他の練習用関数を作成しました。どんな洞察も大歓迎です。

<!DOCTYPE HTML>
<html>
<head>
<script type = "text/javascript">
<!--

//Define a function Max() that takes three numbers as 
//arguments and returns the largest of them.
function Boo(){
    document.write("boo");
    alert("boo");
}


function Max(p1, p2, p3){
    document.write(p1+p2+p3);
    alert('BOO!')

    document.write(document.getElementById('value1').value);

    var max = Number(p1);
    v2 = Number(p2):
    v3 = Number(p3);    

    if (v2 > max)
        max = v2;
    if (v3 > max)
        max = v3;

    document.write(max);
}
-->
</script>
    </head>
    <body>
<form>
    <input type="text" id="value1" name="value1"/><br />
    <input type="text" id="value2" name="value2"/><br />
    <input type="text" id="value3" name="value3"/><br />
    <input type = "button" 
    onclick="Boo()" 
    value = "Compare!"/>
    <!-- onclick="Max(document.getElementById('value1').value,
                 document.getElementById('value2').value,
                 document.getElementById('value3').value)" -->
</form>
  </body>
 </html>
4

4 に答える 4

5
  v2 = Number(p2):

する必要があります

v2 = Number(p2);

また、使用しているブラウザーの開発者ツールを調べて、このような単純な構文エラーを見つけてください。(ほとんどのブラウザーでは、F12 を押すことができます)。

于 2012-05-31T14:36:58.513 に答える
2

クロム開発者ツールは、構文エラーがあると言います!

v2 = Number(p2):

次のようにする必要があります。

v2 = Number(p2);
于 2012-05-31T14:38:31.733 に答える
1

あなたのJavaScript関数はコメントアウトされています<!-- -->

于 2012-05-31T14:36:06.763 に答える
0

必要なのはこれだけです:

    var elements = document.getElementsByName('to_compare');
    var elementsAsArray = [].slice.call(elements);
    var numberValues = elementsAsArray.map(function(x) {
        return Number(x.value)
    });
    return Math.max.apply(this, numberValues);

console.logではなく使用を含む完全なデモ。document.writeドキュメントをクリアせずに追加する方法も含まれます: http://jsfiddle.net/yYhjD/1/

<head>
    <script type="text/javascript">

function compare() {
    var elements = [].slice.call(document.getElementsByName('to_compare'));
    var numberValues = elements.map(function(x){return Number(x.value)});
    return Math.max.apply(this, numberValues);
}

    </script>
</head>

<body>
    <input type="text" id="value1" name="to_compare" value="-10"/>
    <input type="text" id="value2" name="to_compare" value="080"/>
    <input type="text" id="value3" name="to_compare" value="79"/>
    <br/>
    <input type="button" onclick="console.log(compare())" value="Compare!"/>
</body>
于 2012-05-31T15:06:55.697 に答える