我正在尝试从具有特定类的表单元格中获得最高的数字(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);
答案 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
避免在值之间使用逗号分隔