6

この関数に、変数 moveCount を渡しているにもかかわらず、parseInt に基数パラメーターがないことを示すエラー メッセージが表示されます。これは、id #moveCount を持つスパンの値が変数 moveCount に割り当てられていないことを意味すると思います。問題が発生していると思われる以下の行に印を付けました。私はこの行を試しました

moveCount = $('span #moveCount').html();

セレクターで「スパン」という単語を使用する場合と使用しない場合の両方で、同じ結果が得られます。

function incrementMoveCount() {
    //gets the html of the span with id
    //moveCount
    //turns it into a number
    //increments it by one
    //sets the html of the span with id moveCount
    //to the new move count
    var moveCount = 0; 
    var newMoveCount = 0;
    moveCount = $('span #moveCount').html();   # problem here
    newMoveCount = parseInt(moveCount);
    newMoveCount = newMoveCount + 1; 
    $('span #moveCount').html('newMoveCount');
}

html

<div id="meta">
<h1>Checkers</h1>
<h4>Moves: <span id="moveCount">0</span></h4>
</div>
4

5 に答える 5

0

指定されたIDを持つ要素は1つだけであり、スパンであることを指定する必要はありません。

$("#moveCount").html()

それでも探しているものが得られない場合、問題はjQueryコードにあるのではなく、htmlを確認する必要があります。

編集:

$('#moveCount').html('newMoveCount');

する必要があります

$('#moveCount').html(newMoveCount);
于 2012-09-06T19:45:31.377 に答える
0

ID で要素を取得する場合は、タグ名で検索する必要はありません。したがって、HTML ドキュメントは理論的には特定の ID を持つ要素を 1 つだけ持つ必要があります。したがって、あなたの場合: $('#moveCount'); 要素も取得する必要があります。コードを次のように変更します。

var moveCount = + $('#moveCount').text();
$('#moveCount').text(moveCount + 1);

jquery .text() メソッドはスパンの値を正しく取得し、前の「+」記号はそれを自動的に int に変換します。parseInt() を呼び出す必要はありません。jQuery select を 1 回だけ起動することで、さらに高速化できます。

var moveCountElement = $('#moveCount');
moveCountElement.text(+ moveCountElement.text() + 1);

それが役立つことを願っています!

于 2012-09-06T19:57:50.607 に答える
0
.html('newMoveCount'); 

スパンの html は、newMoveCount 変数の値ではなく、文字列 'newMoveCount' である必要があることを意味します。また、スパンと ID の間にスペースを入れてはいけません。全体として、これは機能するはずです:

function incrementMoveCount() {
    var moveCount = 0;
    var newMoveCount = 0;
    moveCount = $('span#moveCount').html();
    newMoveCount = parseInt(moveCount);
    newMoveCount = newMoveCount + 1;
    $('span#moveCount').html(newMoveCount);
}
于 2012-09-06T19:58:27.967 に答える