2

ボタンの値を変更する関数を含むスクリプトを作成しました。
ボタンは、html コード内の同じドキュメントにあります。
問題は、ボタンの値が変わらないことです。
直してもらえますか?

コードは次のとおりです。

function changeCounting(){
    var element = document.getElementById("counting");
    if(element.value == '+')element.value = '-';
    else if(element.value == '-')element.value = '*';
    else if(element.value == '*')element.value = '/';
    else element.value = '+';
}

フォームのボタンのコードは次のとおりです

<form>
    <input type="text" id="tal1"></input>
    <input type="button" id="counting" onclick="changeCounting()" value='+'></input>
    <input type="text" id="tal2"></input>
    <input type="button" id="equals" onclick="calc()" value="Enter"></input>
</form>

編集: 問題は、HTML コードの後に​​スクリプトを開始したことです。

4

3 に答える 3

0

jQuery を使用できる場合は、次のコードが必要です。

HTML

<form>
    <input type="text" id="tal1" />
    <input type="button" id="counting" value='+'/>
    <input type="text" id="tal2" />
    <input type="button" id="equals" onclick="calc()" value="Enter"/>
</form>

JavaScript

$(function(){

    function changeCounting(){
        var element = document.getElementById("counting");
        if(element.value == '+')element.value = '-';
        else if(element.value == '-')element.value = '*';
        else if(element.value == '*')element.value = '/';
        else element.value = '+';
    }

    $('#counting').on('click', changeCounting)
})

http://jsfiddle.net/dAJTt/

于 2013-05-24T17:58:55.727 に答える
-1

このコードはよりシンプルで読みやすいように見えます。この作業例を確認してください

function changeCounting(){
  var operationsMap = {
  '+' : '-',
  '-' : '*',
  '*' : '/',
  '/' : '+'
  };

  var element = document.getElementById('counting');
  element.value = operationsMap[element.value];
}

ノート:-

  1. 要素がDOMに存在する場合は、イベントバインディングが完了していることを確認してください。jQuery を使用している場合は、document.ready()メソッドでバインディングを行うことができます。私がこれを言っているのは、コンテンツ (HTML)、プレゼンテーション (CSS)、振る舞い (JS) を混ぜてはいけないからです。これはベスト プラクティスと見なされます。そのため、JavaScript でハンドラーをバインドすることをお勧めします。

  2. HTML を検証してください。HTML を検証するためのオンライン ツールは多数あります。

于 2013-05-24T18:19:56.323 に答える
-1
function changeCounting(){
    var element = document.getElementById("counting");
    if (element.value == '+'){ element.value = '-'; }
    else if (element.value == '-'){ element.value = '*'; }
    else if(element.value == '*'){ element.value = '/'; }
    else { element.value = '+'; }
}
于 2013-05-24T18:20:30.010 に答える