如何根据数值通过数据属性进行搜索并获得最接近的值

时间:2016-05-01 17:04:39

标签: javascript jquery html

我有一个包含不同data-score值的div的无序列表。我试图访问第一个div data-score正好高于搜索值的值。我有以下代码,但它似乎不起作用。有什么建议吗?



var userscore = $("#userScore").val();

var next = $("div[data-score >=" + userscore + "]").text();

$("#result").text(next);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="hidden" id="userScore" value="20">
<div data-score="5" class="item">A</div>
<div data-score="15" class="item">B</div>
<div data-score="45" class="item">E</div>
<div data-score="25" class="item">C</div>
<div data-score="35" class="item">D</div>


<div id="result">NEXT IS UNKNOWN!</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

使用float:right根据处理程序中指定的.filter()减少元素集。

condition返回的元素应用.sort()并从中获取.filter元素!

.first()
var userscore = $("#userScore").val();
var next = $("div[data-score]").filter(function() {
  return $(this).data('score') >= userscore;
}).sort(function(a, b) {
  return Number($(a).data('score')) - Number($(b).data('score'));
}).first();

$("#result").text(next.text());