如何根据数值通过数据属性进行搜索并获得最接近的值
How to search via data attribute based on a numeric value and get the closest value
我有一个具有不同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>
使用.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());
<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>
<hr>
<div id="result">NEXT IS UNKNOWN!</div>
相关文章:
- 获取最接近的数组数
- 从同级字符串中指定最接近的元素类
- 当使用'最接近的':jQuery
- 如何使刻度四舍五入到最接近的 # 的倍数
- 如何根据数值通过数据属性进行搜索并获得最接近的值
- 通过搜索最接近的类来更改类
- 获取TR之外最接近的隐藏值
- JQuery获取最接近的元素并筛选子元素
- 获取最接近所选选项的最快方式
- j查询树遍历从子级到最接近过滤的父级
- JavaScript:如何在最接近值的关联数组中查找键
- jquery onclick 切换最接近的 UL
- 在 javascript 数组中搜索最接近的下一个值
- 如何确定乘以后将使您最接近目标数字的数字
- 单击按钮,如何获取与类最接近的td值
- javascript代码查找最接近零的tescase
- 未获得最接近0的结果
- jQuery此语法或最接近的语法
- 文本框使用关键字搜索数组并显示最接近的结果
- Sqlite最接近的数字搜索