2015-04-06 78 views
1

分开后,我有一个函数,输出显示的列表中的数组:JS - 清单昏迷

email1 
email2 
email3 
… 

我想实现是有一个阵列输出,看起来像:

email1, email2, email3, … 

任何想法如何转换列表?

$(document).ready(function(){ 
     $(".select_email").click(function(){ 
      var val = []; 

      $(':checkbox:checked').each(function(i){ 
       val[i] = $(this).val(); 
       var arr = jQuery.makeArray(val[i]); 
       arr.push(val[i]); 
       document.getElementById("demo").innerHTML = arr; 
       console.log(arr); 
      }); 
     }); 
    }); 

回答

0

这里是快速的解决方案

$(document).ready(function(){ 
    $(".select_email").click(function(){ 
    var val = $(':checkbox:checked').map(function(){ return this.value; }).toArray().join(', '); 
    document.getElementById("demo").innerHTML = val; 
}); 
}); 
+0

非常感谢你,这工作非常好! – SNos

0

你已经过了复杂的事情与一个额外的数组。你只需要一个数组,并使用join()

$(".select_email").click(function() { 
    var val = []; 

    $(':checkbox:checked').each(function (i) { 
     val.push($(this).val());// push values to array  
    }); 
    $('#demo').html(val.join()); // join array to print 

}); 

默认情况下join()使用逗号作为delimitter,如果你想要额外的空间或不同delimitter通作为参数,像join(', ')

0

你正在做的是,你是印刷价值。您已拥有清单

$(':checkbox:checked') 

您正在执行$ .each操作。您可以通过指定第二个参数来获取该项目。

$(selector).each(function(index, elem){ 
    //do stuff 
}) 

获取更多信息,您可以查看API文档 https://api.jquery.com/each/

1

You'v的数组。我只是转换这个工作人员。

$(document).ready(function(){ 
    $(".select_email").click(function(){ 
     var val = []; 

     $(':checkbox:checked').each(function(i){ 
      val[i] = $(this).val(); 
      var arr = jQuery.makeArray(val[i]); 
      arr.push(val[i]); 

      document.getElementById("demo").innerHTML = val[i]; 
      console.log(val[i]); 
      //we just convert array to string by separator comma 
      console.log(arr.join(", ")); 

     }); 
    }); 
}); 
+0

只有最后一封电子邮件,将在DOM显示,要覆盖每个迭代 – charlietfl

+0

嗨,我心中已经创建的jsfiddle演示,它的工作精细。 http://jsfiddle.net/kmb645/hqe4wuxc/18/ –

+0

但小提琴使用不同于代码中显示的代码 – charlietfl

0

只需用数据代替变种名为 “txt”。

例子:

<textarea id="txtarea"> 
line1 
line2 
linea3</textarea> 

    function transform(){ 
     var txt = document.getElementById('txtarea').value; 
     txt = txt.replace(/(\n|\r|\r\n)/g, '<br/>'); 
     var temp = txt.split("<br/>"); 

     var rsp = ''; 

     for (index = 0; index < temp.length; ++index) { 
      rsp += temp[index] + " "; 
     } 

     console.log(rsp); 
    } 

输出:

一号线2号线3号线