javascript concat()方法随机添加换行符

时间:2016-12-06 08:53:03

标签: javascript string checkbox

我正在编写一个JS代码,它读取特定的复选框,检查它们是否被选中,如果是,则将它们的值附加到字符串。这是我的代码:

    var checkboxArr = document.querySelectorAll('#div_name input[type="checkbox"]');
    var str="";
    for(var i =0; i< checkboxArr.length;i++){
        var cb = checkboxArr[i];
        if(cb.checked){
            var newVal=cb.value;
            str=str.concat(newVal);
            str=str.concat(",");
        }
    }
    alert(str);

我得到的字符串是:

value1
,value2
,value3

这些换行符是如何进入字符串的?

此外,这些换行符的出现是随机的 - 有时它们会出现,有时我会得到所需的字符串。

我也尝试将concat()调用组合成1个语句,我也使用了+=运算符,但没有运气。

任何指导都非常感谢。感谢

2 个答案:

答案 0 :(得分:2)

这就是你所需要的一切。使用js右:D

var checkboxArr = document.querySelectorAll('#div_name input[type="checkbox"]');
var str = [];

checkboxArr.forEach(function(cb) {
    if (cb.checked) str.push(cb.value);
});      

alert(str.join(', '));

如果您仍然有相同的结果,请检查您的html代码。您似乎在复选框

中的值后面有换行符

答案 1 :(得分:1)

检查ES6的实施情况,不确定为什么会收到new line

var btn = document.getElementById('btn');

btn.onclick = function(){
var checkboxArr = document.querySelectorAll('#div_name input[type="checkbox"]:checked');
   var res = Array.from(checkboxArr).map(cb => cb.value.trim()).join(',')
   console.log(res)
}
<div id="div_name">
  <input type="checkbox" value="cb_1" />    
  <input type="checkbox" value="cb_2" />    
  <input type="checkbox" value="cb_3" />    
  <input type="checkbox" value="cb_4" />    
  <input type="checkbox" value="cb_5" />    
</div>
<button id="btn">Check</button>