Math.min.apply返回0

时间:2014-04-16 18:30:18

标签: jquery

有五个班级“价格”。该函数从类中获取最小数,并将其添加到“价格框”。当其中一个类为空时,每个东西都工作得很好 - 脚本重新编译0。 如何解决?

<div id="price-box"></div>

<table id="table-prices">
 <tr>
    <td>Ткань</td>
    <td>Цена (грн)</td>
 </tr>
 <tr>
   <td>1</td>
   <td class="priсe">1496</td>
 </tr>
 <tr>
   <td>2</td>
   <td class="priсe">4496</td>
 </tr>
 <tr>
   <td>3</td>
   <td class="priсe">2496</td>
 </tr>
 <tr>
   <td>4</td>
   <td class="priсe">5296</td>
 </tr>
 <tr>
   <td>5</td>
   <td class="prise">5696</td>
 </tr>

var array = [];
$('.priсe').each(function(){
    array.push(+$(this).text());
});
console.log(array);
var maximum = Math.min.apply(null,array);
$('#price-box').text(maximum + " грн");

2 个答案:

答案 0 :(得分:2)

您可以使用empty选择器消除空行。

$('.prise').not(':empty')each(function(){
 // rest of the function
});

如建议的那样,你可以将它缩短一点:

$('.prise:not(:empty)') each(function () {
    // rest of the function
});

答案 1 :(得分:1)

尝试检查空值:

$('.prise').each(function(){
    if($.trim($(this).text())!='')array.push(+$(this).text());
});

<强> jsFiddle example