我有一个输出显示为列表的函数:
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 :(得分:1)
你是一个阵列。我只是转换这个员工。
$(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(", "));
});
});
});
答案 1 :(得分: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()
使用逗号作为分隔符,如果您想要额外的空格或不同的分隔符作为参数传递,如join(', ')
答案 2 :(得分:0)
您正在做的是,您正在打印这些值。您已有列表
$(':checkbox:checked')
您正在执行$ .each操作。您可以通过指定第二个参数来获取项目。
$(selector).each(function(index, elem){
//do stuff
})
有关详细信息,您可以查看API文档 https://api.jquery.com/each/
答案 3 :(得分:0)
这是快速解决方案
$(document).ready(function(){
$(".select_email").click(function(){
var val = $(':checkbox:checked').map(function(){ return this.value; }).toArray().join(', ');
document.getElementById("demo").innerHTML = val;
});
});
答案 4 :(得分:0)
只需替换var" 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);
}
输出:
line1 line2 line3