将变量传递给警报

时间:2012-06-04 18:59:13

标签: jquery

foo输入正确的字符串.guess时,我会尝试从.clicks中提取值并将其传递给警报。当我使用当前代码(下面)加载页面时,警报显示为Correct! You guessed it in 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>

4 个答案:

答案 0 :(得分:4)

.val()主要用于获取表单输入元素的值。

我认为你想使用$(".clicks").text(),或者 $(".clicks").html(),将返回"0"

答案 1 :(得分:2)

$('.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();
    }
});

答案 2 :(得分:0)

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

答案 3 :(得分:0)

工作演示点击此处:) http://jsfiddle.net/QSrWs/

请使用api:.text()

这有助于您了解差异:Difference between val() and text()

  

Val()适用于输入元素(或任何带有value属性的元素?)   和text()不适用于输入元素。 Val()得到的值   输入元素 - 无论何种类型。 Text()获取innerText   所有匹配元素的(不是HTML):

希望这有帮助,

<强>码

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