1

所以我有一个在我的网站上注册的用户列表,第一列,第二列是他们的电子邮件地址,旁边有一个复选框。在此页面上,用户可以选中该框(或多个)并单击提交按钮。一旦他们这样做,它将生成一个以分号分隔的电子邮件列表。

我的问题是在他们点击提交列表生成之后,但第一个电子邮件地址旁边写有“未定义”..所以不是说“domain1@test.com; domain2@test.com”而是“未定义的domain1@test .com; domain2@test.com”。

这是我的 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() + "; "; 但我不确定......有什么想法吗?

谢谢!

4

2 回答 2

3

首先初始化emailList变量,这意味着它不会在undefined您第一次执行时开始。巧合的是,当您第一次调用+=时,它实际上正在转换undefined为字符串,这意味着您的字符串始终以该字符串开头。

var emailList = "";
于 2013-01-24T21:47:57.057 回答
0

尝试用emailList以下代码替换 's 声明:

var emailList = "";

那是因为一emailList开始就undefined好像你没有初始化它。因此undefined + "this is a test"会变成undefinedthis is a test

于 2013-01-24T21:48:21.637 回答