1

そのため、1列に自分のサイトに登録されているユーザーのリストがあり、2列目には、横にチェックボックスが付いたユーザーの電子メールアドレスがあります。このページで、ユーザーはチェックボックス(または倍数)をオンにして送信ボタンをクリックできます。これを行うと、セミコロンで区切られた電子メールのリストが生成されます。

私の問題は、リストが生成する送信を押した後ですが、最初のメールアドレスのすぐ横に「undefined」と書かれています。したがって、「domain1@test.com; domain2@test.com」と言う代わりに、「undefindeddomain1@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の宣言を次のコードに置き換えてみてください。

var emailList = "";

これは、初期化しないかのようにemailList開始するためです。undefinedしたがってundefined + "this is a test"、として判明しundefinedthis is a testます。

于 2013-01-24T21:48:21.637 に答える