获取具有最高数值的输入元素的输入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。


慕斯709654
浏览 49回答 2
2回答

慕虎7371278

据我所知,您已经得到了答案,但我已经在 JavaScript 中完成了此操作,并获取是否有多个字段具有相同的最高值。let elements = document.getElementsByClassName('scores');&nbsp; &nbsp; elements = [...elements];&nbsp; &nbsp; console.log(...elements)&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; let max = Math.max.apply(Math, elements.map(e=>Number(e.value)))&nbsp; console.log(max)&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; let allMaxIds = elements.filter(e=>{&nbsp; &nbsp; &nbsp; return max === Number(e.value);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}).map(e=> {return {id:e.id,score:Number(e.value)}});&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; 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">

慕的地10843

这是一个使用 Array 对象排序的选项:let scores = Array.from($(".scores"));let sortedElements = scores.sort((a, b) => parseInt($(b).val()) - parseInt($(a).val()));let $max = $(sortedElements[0]);console.log("Element id with highest score: #" + $max.attr('id'));<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><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"><input type="text" class="scores" id="6ydb2d" value="15">https://jsfiddle.net/zvkh12s6/
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript