我有一个包含不同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;
答案 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());