gpt4 book ai didi

javascript - 按数据属性排序

转载 作者:行者123 更新时间:2023-12-03 02:35:37 25 4
gpt4 key购买 nike

我正在处理一个 div 列表,其中包含我想要通过选择进行排序的自定义数据属性。例如,如果选择“关注者”,它将在 .box 的数据关注者之后排序。

我的jsfiddle:https://jsfiddle.net/nbgo117b/

我一直在想这样的事情,但我无法实现它。

 $("#sorter").change(function() {
var value = $("#sorter option:selected").val();
var boxOrdered;

if (value == 'date' ){
boxOrdered = $('.influencer .box').sort(function(a, b){
return ($(b).data('followers')) < ($(a).data('followers')) ? 1 : -1;
});
}
$(".influencer").html(boxOrdered);
});

最佳答案

您可以使用$.sort来比较数据属性,如下所示:

$(document).ready(function() {
var $influencer = $('.influencer');
$("#sorter").on('change',function() {
var criterion = $(this).val();
$influencer.find('.box').sort(function (a, b) {
var valA = $(a).find('[data-'+criterion+']').data(criterion);
var valB = $(b).find('[data-'+criterion+']').data(criterion);
return (valA < valB) ? 1 : (valA > valB) ? -1 : 0;
}).appendTo($influencer);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<selection id="sort">
<select id="sorter">
<option value="default">Sort by</option>
<option value="followers">Most followers</option>
<option value="likes">Most likes</option>
<option value="views">Most views</option>
<option value="date">Newsest</option>
<option value="alpha">Alphabetical order</option>
</select>
</selection>

<div class="influencer">
<div class="box" data-added="20.20.2018">
<span class="followers" data-followers="1500000">1.5M followers</span>
<span class="likes" data-likes="200000">200K likes</span>
<span class="views" data-views="100000">100K video views</span>
</div>
<div class="box" data-added="20.20.2018">
<span class="followers" data-followers="2500000">2.5M followers</span>
<span class="likes" data-likes="80000">80K likes</span>
<span class="views" data-views="200000">200K video views</span>
</div>
</div>

关于javascript - 按数据属性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48542652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com