jquery map数组在迭代器中返回NaN

时间:2015-01-25 16:22:13

标签: javascript jquery

我正在尝试解析这个复选框值数组并删除" N"。

使用replace函数会产生错误 TypeError:numberArr [i] .replace不是函数,如果删除replace函数,脚本只输出 NaN 为了我的价值观。

在此处http://jsfiddle.net/j0w5tkg9/3/

<div id='opts'>
    <input type="checkbox" data-cost="0" value="44N12345" name="options[]">
    <input type="checkbox" data-cost="0" value="55N6789" name="options[]">
</div>
<div id='output'></div>


 function getAllocArray() {
     var numberArr = $.map($('input:checkbox:checked'), function (e, i) {
         return +e.value;
     });
     var varOutput = '<ul>';
     for (var i = 0, len = numberArr.length; i < len; i++) {
         varOutput += "<li>" + numberArr[i].replace(/N/,'') + "</li>";
     }
     varOutput += '</ul>';
     $('#output').text(varOutput);
 };

 $('#opts').on('click', 'input:checkbox', null, getAllocArray);

1 个答案:

答案 0 :(得分:2)

请勿将值转换为Number。将+e.value替换为e.value

 var numberArr = $.map($('input:checkbox:checked'), function (e, i) {
     return e.value;
 });

数字没有replace方法。