从表格单元格中获取最高编号

时间:2019-04-01 05:49:34

标签: javascript jquery

我正在尝试从具有特定类的表单元格中获得最高的数字(122,28.22)。

这是我的HTML代码:

<table>
    <tr>
        <td class="id">3.2091</td>
    </tr>
    <tr>
        <td class="id">122,28.22</td>
    </tr>
    <tr>
        <td class="id">4.8271</td>
    </tr>
</table>

这确实是我尝试过的方法,但它只返回NaN。因此math.max无法使用。

var high = Math.max.apply(Math, $('.id').map(function(){
         return $(this).text()
}))

alert(high);

7 个答案:

答案 0 :(得分:1)

您收到NaN,因为您的数字122,28.22包含一个,,因此您可以使用replace将其更改为有效的数字格式

function findMax(){
  let td = document.getElementsByClassName('id')
  let value = [...td].map(e=> +e.innerText.replace(/,/,''))
  console.log(Math.max(...value))
}
<table>
    <tr>
        <td class="id">3.2091</td>
    </tr>
    <tr>
        <td class="id">122,28.22</td>
    </tr>
    <tr>
        <td class="id">4.8271</td>
    </tr>
</table>

<button onClick="findMax()">Find max </button>

答案 1 :(得分:0)

尝试return Number($(this).text().replace(',','')) 文本,即使格式较少的文本也无法通过Math方法处理为数字。

答案 2 :(得分:0)

$(this).text()转换为数字:

var high = Math.max.apply(Math, $('.id').map(function() {
  return parseFloat($(this).text().replace(/\,/g, ""));
}));

console.log(high);
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<table>
    <tr>
        <td class="id">3.2091</td>
    </tr>
    <tr>
        <td class="id">122,28.22</td>
    </tr>
    <tr>
        <td class="id">4.8271</td>
    </tr>
</table>

不幸的是,上面的方法将文本格式化,因为它不是数字形式。

答案 3 :(得分:0)

相反,向表中添加一个ID并使用documentquerySelectorAll。使用散布运算符可以使用数组map的方法,而innerText可以获取td的内容。从map返回之前,检查,并替换掉,并使用数组sort方法找到最大值

let k = [...document.getElementById('table').querySelectorAll('tr')].map((item) => {
  let val = item.querySelector('td').innerText;
  if (val.includes(',')) {
    return val.replace(',', '')
  }
  return val
}).sort((a, b) => b - a)[0]

console.log(k)
<table id='table'>
  <tr>
    <td class="id">3.2091</td>
  </tr>
  <tr>
    <td class="id">122,28.22</td>
  </tr>
  <tr>
    <td class="id">4.8271</td>
  </tr>
</table>

答案 4 :(得分:0)

尝试

var high = Math.max.apply(Math, $('.id').map(function(){
     return $(this).text().replace(/,/g, '');
}))

答案 5 :(得分:0)

$(document).ready(function(){var listArray = [] $('。id')。each(function(){listArray.push(parseInt($(this).text()))}} ); console.log(Math.max(... listArray))

答案 6 :(得分:0)

  

122,28.22

避免在值之间使用逗号分隔