2013-01-24 50 views
1

所以我有一列用戶在我的網站上註冊了1列,第二個是他們的電子郵件地址旁邊有一個複選框。在此頁面上,用戶可以選中該框(或多個)並單擊提交按鈕。一旦他們這樣做,它將生成分號分隔的電子郵件列表。jQuery錯誤 - 生成undefined

我的問題是,他們點擊提交列表生成後,但第一個電子郵件地址有「未定義」寫在旁邊..所以,而不是說「[email protected]; [email protected]」它讀取「[email protected]; [email protected]」。

這裏是我的jQuery:

jQuery(document).ready(function() { 
jQuery('#memberSubmit').click(function() { 
    var emailList; 
    jQuery('.email-members input:checked').each(function() { 
     var $this = jQuery(this); 
     emailList += $this.next('a').html() + "; "; 
    }); 
    jQuery('.email-message').hide(); 
    jQuery('.email-members').hide(); 
    jQuery('.email-checks').hide(); 
    jQuery('#memberSubmit').hide(); 
    jQuery('.email-results a').attr('href', "mailto: " + emailList).fadeIn(2000); 
    jQuery('.email-results .email-list p').html(emailList).fadeIn(2000); 
    jQuery('.email-results h2').fadeIn(2000); 
    jQuery('.email-results p').fadeIn(2000); 
    jQuery('.email-list h2').fadeIn(2000); 
    //console.info('Emails: ' + emailList); 
}); 
}); 

我覺得我的錯誤就行了:emailList += $this.next('a').html() + "; "; 但我不知道...任何想法?

謝謝!

+0

你能提供一個簡短的HTML設置例子嗎? – Matt

回答

3

初始化emailList變量首先,這意味着當您執行第一次出行時,它不會從undefined開始。巧合的是,當您第一次致電+=時,實際上它將undefined轉換爲一個字符串,這意味着您的字符串始終以此開頭。

var emailList = ""; 
+0

餵它它你打我幾秒鐘:P – Doorknob

+1

@ Doorknob赫赫我注意到,對不起哥們! – mattytommo

+0

工作就像一個魅力!謝謝你們倆! – Danny

0

嘗試使用此代碼替換emailList的聲明:

var emailList = ""; 

這是因爲emailList開始爲undefined,如果你不進行初始化。因此undefined + "this is a test"會變成undefinedthis is a test

+0

明天在這個答案中提到我,我會給你+1,我已經打了今天的投票帽! – mattytommo

+0

@mattytommo不,沒關係:P – Doorknob

+0

反正我要這樣做:P – mattytommo