当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>
答案 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();
}
});