2012-06-04 61 views
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> 
+2

VAL()只用於輸入元素。對於所有其他元素,請使用html()。 – thescientist

回答

4

.val()主要用於獲取表單輸入元素的值。

我想你想使用$(".clicks").text(),這將返回"0"

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(); 
    } 
}); 
0
$('.guess').keyup(function() { 
    if ($.trim(this.value) == "foo") { 
     var clicks = $('.clicks').text(); 
     alert('Correct! You guessed it in ' + clicks + ' clicks.'); 
     location.reload(); 
    } 
}); 
0

工作演示請點擊這裏:) http://jsfiddle.net/QSrWs/

請使用API​​:.text()

這將幫助你理解上的差異:Difference between val() and text()

瓦爾( )適用於輸入元素(或任何元素nt帶有值屬性?) 和text()不適用於輸入元素。 Val()獲取輸入元素的值 - 無論類型如何。文本()獲取所有匹配的元素的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(); 
    } 
});​