首页 > 解决方案 > 获取数值最大的输入元素的输入id

问题描述

我几乎没有带有类名的输入字段scores,它们的 id 是随机的,并且可以肯定输入字段是动态的,但具有相同的类名。

<input type="text" class="scores" id="1dhs3d" value="50">

<input type="text" class="scores" id="ae34bd" value="100">

<input type="text" class="scores" id="6ydbbd" value="15">

我如何获得具有最高值的输入的 id(在本例中为 ae34bd)。

注意:我可能有多个“相同高分”的元素

我试过这个:

var max_=[];
$('.scores').each(function(){ max_.push( $(this).val() ); });

var max = Math.max.apply(Math, max_);

这样,只能获得最高值,但我需要知道具有最高值的元素的 id。

标签: javascriptjquery

解决方案


我知道你已经得到了答案,但是我已经在 J​​avaScript 中做到了这一点,并了解是否有多个字段具有相同的最高值。

let elements = document.getElementsByClassName('scores');
    elements = [...elements];
    console.log(...elements)
    
    let max = Math.max.apply(Math, elements.map(e=>Number(e.value)))
  console.log(max)
    
    let allMaxIds = elements.filter(e=>{
      return max === Number(e.value);
            
   }).map(e=> {return {id:e.id,score:Number(e.value)}});
    
    console.log(allMaxIds)
<input type="text" class="scores" id="1dhs3d" value="50">
<input type="text" class="scores" id="ae34bd" value="100">
<input type="text" class="scores" id="ae34bb" value="100">
<input type="text" class="scores" id="6ydbbd" value="15">


推荐阅读