アラートに変数を渡す

正しい文字列 foo.guess に入力されたとき、私は .clicks から値を取り出し、それをアラートに渡そうとしています。現在のコード(下記)でページをロードすると、アラートは「正解!」と表示されます。clicks.で推測されます。なぜclicks` 変数が渡されないのでしょうか?

ありがとうございます。

jQuery:

$('.guess').keyup(function() { 
    if ($('.guess').val() == "foo") {
        var clicks = $('.clicks').val();
        alert('Correct! You guessed it in ' + clicks + ' clicks.');
        location.reload();
    }
});

HTML。

<div class="bar">
    <h2 class="clicks">0</h2>
    <input type="text" class="guess" />
</div>
ソリューション

.val() は、主にフォーム入力要素の値を取得するために使用されます。

この場合、$(".clicks").text()、あるいは または $(".clicks").html(), これは "0" を返します。

解説 (0)
$('.guess').keyup(function() { 
    if ($('.guess').val() == "foo") {
        var clicks = $('.clicks').text(); // .text() instead of .val()
        alert('Correct! You guessed it in ' + clicks + ' clicks.');
        location.reload();
    }
});
解説 (0)
$('.guess').keyup(function() { 
    if ($.trim( this.value ) == "foo") {
        var clicks = $('.clicks').text();
        alert('Correct! You guessed it in ' + clicks + ' clicks.');
        location.reload();
    }
});
解説 (0)