Trim 使用地图之前的字符串?

Trim strings before using map?

我想从用户创建的页面中获取所有输入值,并想将其存储在数组中以进行 ajax 调用以处理数据。我是这样做的:

$('#save').click(function(){
    var data = $('*[data-array]').map(function(idx, elem) {
    $.trim(elem);
    return $(elem).val();
    }).get();

问题是在创建这个数组之前它不会 trim 字符串。好像$.trim不适用?例如,如果我输入 ABC_____________ 是空格,必须在这里写它以向您展示空格作为演示)我将得到结果:ABC_(在 ABC 之后有一个空格)

$.trim() return 你修剪了字符串,它不会修改提供的字符串

var el = $(elem);
var value = $.trim(el.val());
el.val(value );
return value;

你必须trim值

$('#save').click(function(){
    var data = $('*[data-array]').map(function(idx, elem) {
    $(elem).val($.trim($(elem).val()));
    return $(elem).val();
    }).get();

 $('#save').click(function(){
        var data = $('*[data-array]').map(function(idx, elem) {
        $(elem).val($.trim($(elem).val()));
        return $(elem).val();
        }).get()
        
        console.log(data);
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<input data-array/>
<input data-array/>
<input data-array/>
<input type="button" id="save" value="save"/>