有一個很多一點不你的代碼很有意義。
首先,什麼是userResponse
?這在什麼地方得到了定義,它在哪裏設置?你有沒有在調試器下進行驗證,確實是等於爲「女孩」?
其次,你可能是指使用比較等於不是分配等於這裏:
if (userResponse = "girl") { // This should be ==
但是,這不應該阻止塊運行。實際上,它會強制阻止總是運行,因爲「女孩」是真實的。
三,什麼是girlnames
?它是一個數組嗎?這個定義在哪裏?你確認它確實包含有效的項目嗎?
最後,我相信你的for
循環是不正確的:
for (var i = 0; i <= girlnames.length; i++) {
應該是:
for (var i = 0; i < girlnames.length; i++) {
數組從0開始,因此girlnames[girlnames.length]
是不是一個有效的項目。
但是,考慮到你不使用的i
變量在循環的任何地方,這同樣不應該實際上引起任何錯誤。
我會通過使用腳本調試器(通常F12在現代瀏覽器)線通過您的代碼行步驟,並在設置一個斷點:
var lastname = $('#lastnameresponse').val();
然後驗證每一行行爲正確。如果仍然無法工作,則需要發佈更多代碼,以便我們更好地瞭解發生了什麼。
UPDATE:
基於您的評論:
這裏就是userResponse變量定義: $(文件)。就緒(函數(){$( 「#girlimg」 ).click(function(){var userResponse = prompt(「確認您選擇的性別」)toLowerCase; $('html,body')。animate({scrollTop:$(「。LastName」)。offset ).top}, 2000);
似乎userResponse
得到了#girlimg
標籤單擊處理程序中聲明:
$("#girlimg").click(function() {
// Everything declared here is local to this function
var userResponse = confirm(); // local variable
});
因此,它不會在.button3
單擊處理程序訪問。您需要在兩個函數均可訪問的範圍內聲明userResponse
。也許是全局的(這在JavaScript中是皺眉頭的),或者在你的$(document).ready()
代碼中,只要在該塊中定義了兩個單擊事件處理程序。
這看起來不像完整的代碼。什麼是'userResponse'? – mohkhan
'userResponse =「女孩」'將'女孩''分配給'userResponse'。使用'=='或'==='。您之前所做的同一錯誤:http://stackoverflow.com/a/17002680/139010 –
您的for循環之後還有一個雜散括號。 – Austen