1

チェルシーのゴール数がアーセナルよりも多い場合、チェルシーのスコアが1増える、またはその逆のWebページを作成したいと思います。それは機能しておらず、その理由もわかりません。それでも、数日前にJS/JQを学び始めました。

コードの何が問題になっていますか?また、コンソールには何も記録されないことに注意してください。:(

$(document).ready(function() {
    $("#play").click(function(){
            var chelsea = parseInt($('#chelsea-goals').val());
            var arsenal = parseInt($('#arsenal-goals').val());
        if (chelsea > arsenal) {
            parseInt($('#score-chelsea').val())++;
            console.log('Chelsea > Arsenal');
        }
        else if (arsenal > chelsea) {
            parseInt($('#score-arsenal').val())++;
            console.log('Arsenal > Chelsea');
        }
        else {
            console.log('Scores were equal');
        }       
   });
});

また、フォーマットを許してください-私のコードでは正しいです-ここではそれほど見栄えがよくありません。

アップデート

<div class="scores" id="score-chelsea">0</div>
<div class="scores" id="score-arsenal">0</div>
<div class="goals" id="chelsea-goals">{{chelsea.goals}}</div>
<div class="goals" id="arsenal-goals">{{arsenal.goals}}</div>
<button id ="play"></button>
4

3 に答える 3

4

関数をインクリメントすることはできませんparseInt()。これらの行を次のように変更します

$('#score-chelsea').val( parseInt( $('#score-chelsea').val() ) + 1 );

…と同じ#score-arsenalです。

デモ: http://jsfiddle.net/2SVpE/

于 2012-12-30T18:42:34.830 に答える
3

次の行が問題の原因です-

parseInt($('#score-chelsea').val())++;

そのようにすることはできません... 関数parseIntは値を返します。値を抽出した要素への参照は含まれていません。最初にその値を変数に入れる必要があります...

あなたはこのようなことをしたいと思うでしょう

var increasedGoals = parseInt($('#score-chelsea').val());
increasesGoals++;

の他の出現についても同様ですparseInt(...)++


ここで言及する価値のあるもう 1 つのことは、セレクターのキャッシュです。セレクター
$('#score-chelsea')$('#score-arsenal')複数回使用しているので、それらをキャッシュしてみませんか!

$("#play").on('click',function(){
  var chelsea = $('#chelsea-goals');
  var arsenal = $('#arsenal-goals');
  ...
  var chelseaGoals = chelseaElement.val();
  chelseaGoals++;
  chelsea.val(chelseaGoals);
  ...
});
于 2012-12-30T18:43:29.927 に答える