2015-04-06 133 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號線