0

当输入正确的字符串时,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

4 回答 4

4

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

我想你想使用$(".clicks").text(), OR $(".clicks").html(), 这将返回"0"

于 2012-06-04T19:01:03.260 回答
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();
    }
});
于 2012-06-04T19:01:13.660 回答
0
$('.guess').keyup(function() { 
    if ($.trim( this.value ) == "foo") {
        var clicks = $('.clicks').text();
        alert('Correct! You guessed it in ' + clicks + ' clicks.');
        location.reload();
    }
});
于 2012-06-04T19:01:38.713 回答
0

工作演示点击这里:) http://jsfiddle.net/QSrWs/

请使用api:.text()

这将帮助您了解区别:val() 和 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();
    }
});​
于 2012-06-04T19:02:18.237 回答