为什么这段代码会产生额外的逗号?

时间:2011-06-27 06:07:21

标签: javascript

我正在使用javascript

function chkout_pp(i) {
    var myarray = new Array();
    var li = 1;
    myarray[0] = ""
    for(j = 1; j < 13; j++)
    {
        if ($('#chkpp'+j).is(':checked') == true) {  
            myarray[li] = $('#chkpp'+j).val()+"<br>";
            li++;
        }
    } 
    $("#ownerarray").val(myarray);
    $("#edmt_pp").html(myarray+"");
}

此代码正在生成逗号。我想删除逗号。有没有人可以回答我的问题?

3 个答案:

答案 0 :(得分:2)

此代码中生成了逗号。

$("#edmt_pp").html(myarray + "");

这里有一个隐含的myarray.toString(),它将数组元素与逗号连接在一起。

为避免这种情况,请执行:

$("#edmt_pp").html(myarray.join(""));

答案 1 :(得分:0)

非常很难理解你在问什么,但我相信问题是你正在使用数组,所以当你这样做时

 $("#edmt_pp").html(myarray+"");

JS将其转换为字符串,因此将逗号放在元素之间。

改为使用字符串:

function chkout_pp(i) {
    var mystring = "";
    var li = 1;

    for(j = 1; j < 13; j++)
    {
        if ($('#chkpp'+j).is(':checked') == true) {  
            mystring = mystring + $('#chkpp'+j).val()+"<br>";
            li++;
        }
    } 
    $("#ownerarray").val(mystring);
    $("#edmt_pp").html(mystring);
}

答案 2 :(得分:0)

哦,我现在觉得很蠢。它返回逗号的原因很可能是因为$("#edmt_pp").html(myarray+"");正在强制从数组变量到字符串的类型转换(顺便打印出用逗号分隔的每个元素)。