为什么空格出现在我的字符串中?

时间:2010-04-26 12:16:21

标签: javascript jquery

我在下面有这个函数,它返回我的页面上用逗号分隔的复选框的所有ID。它工作得很好,但问题是,它似乎在每个复选框ID后面放了很多空格。我似乎无法弄明白为什么?

/*Returns selected checkbox ID in string seperated by comma */
function get_selected_chkbox(){

    var checked_string = '';

     $('#report_table').find("input[type='checkbox']").each(function(){

        if(this.checked){

            checked_string = checked_string + this.id + ',';

        }

    });

            alert(checked_string);//test1         ,test2            ,   

    return checked_string;
}

感谢大家的帮助

5 个答案:

答案 0 :(得分:2)

您可以像这样重写您的功能

var selected = new Array();
$('#report_table input:checkbox:checked').each(function(){
    selected.push($(this).attr("id"));
});

return selected.join(',');

<强> 修改

最好摆脱id中的空格,而不是在javascript中修剪id。

答案 1 :(得分:1)

使用它来摆脱空格:)

http://api.jquery.com/jQuery.trim/

$修剪(checked_string);

答案 2 :(得分:1)

我猜这些空格都在html中。

尝试(对@ rahul的回答点头):

return $.makeArray($('#report_table input:checkbox:checked').map(function(){
  return $.trim($(this).attr('id'));
})).join(',');

(而且,似乎是对@Tim的答案的点头!)

答案 3 :(得分:1)

请为复选框添加html代码。你可能会写

<input type="checkbox" id="test1        "/>

答案 4 :(得分:0)

this.id.replace(/^\s+|\s+$/g, '')可以使用